Alkalmazások konfigurálása
A Nette alkalmazások konfigurációs lehetőségeinek áttekintése.
Application
application:
	# megjelenjen a "Nette Application" panel a Tracy BlueScreen-en?
	debugger: ...           # (bool) alapértelmezett: true
	# hiba esetén meghívódjon az error-presenter?
	# csak fejlesztői módban van hatása
	catchExceptions: ...    # (bool) alapértelmezett: true
	# az error-presenter neve
	errorPresenter: Error   # (string|array) alapértelmezett: 'Nette:Error'
	# aliasokat definiál presenterekhez és akciókhoz
	aliases: ...
	# szabályokat definiál a presenter nevének osztályra való fordításához
	mapping: ...
	# a hibás linkek nem generálnak figyelmeztetést?
	# csak fejlesztői módban van hatása
	silentLinks: ...        # (bool) alapértelmezett: false
A nette/application 3.2-es verziójától kezdve definiálható egy error-presenter pár:
application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException kivételhez
		5xx: Error5xx   # egyéb kivételekhez
A silentLinks opció meghatározza, hogyan viselkedik a Nette fejlesztői módban, ha a link generálása
sikertelen (például mert nem létezik a presenter stb.). Az alapértelmezett false érték azt jelenti, hogy a
Nette E_USER_WARNING hibát dob. true-ra állítva ez a hibaüzenet elnyomásra kerül. Éles
környezetben az E_USER_WARNING mindig kiváltódik. Ezt a viselkedést a presenter $invalidLinkMode változójának beállításával is befolyásolhatjuk.
Az Aliasok egyszerűsítik a hivatkozást a gyakran használt presenterekre.
A Mapping definiálja a szabályokat, amelyek alapján a presenter nevéből levezetődik az osztály neve.
Presenterek automatikus regisztrációja
A Nette automatikusan hozzáadja a presentereket szolgáltatásként a DI konténerhez, ami jelentősen felgyorsítja azok létrehozását. A Nette presenterek felkutatásának módja konfigurálható:
application:
	# keresse a presentereket a Composer class map-ben?
	scanComposer: ...      # (bool) alapértelmezett: true
	# maszk, amelynek meg kell felelnie az osztály és a fájl nevének
	scanFilter: ...        # (string) alapértelmezett: '*Presenter'
	# mely könyvtárakban keresse a presentereket?
	scanDirs:              # (string[]|false) alapértelmezett: '%appDir%'
		- %vendorDir%/mymodule
A scanDirs-ben megadott könyvtárak nem írják felül az alapértelmezett %appDir% értéket, hanem
kiegészítik azt, így a scanDirs mindkét utat tartalmazni fogja: %appDir% és
%vendorDir%/mymodule. Ha az alapértelmezett könyvtárat ki szeretnénk hagyni, használjuk a felkiáltójelet, amely felülírja az értéket:
application:
	scanDirs!:
		- %vendorDir%/mymodule
A könyvtárak szkennelése kikapcsolható a false érték megadásával. Nem javasoljuk a presenterek automatikus hozzáadásának teljes elnyomását, mert ez csökkenti az alkalmazás teljesítményét.
Latte sablonok
Ezzel a beállítással globálisan befolyásolható a Latte viselkedése a komponensekben és presenterekben.
latte:
	# megjelenjen a Latte panel a Tracy Bar-ban a fő sablonhoz (true) vagy az összes komponenshez (all)?
	debugger: ...        # (true|false|'all') alapértelmezett: true
	# generál sablonokat declare(strict_types=1) fejléccel
	strictTypes: ...     # (bool) alapértelmezett: false
	# bekapcsolja a [szigorú parser |latte:develop#striktní režim] módot
	strictParsing: ...   # (bool) alapértelmezett: false
	# aktiválja a [generált kód ellenőrzését |latte:develop#Kontrola vygenerovaného kódu]
	phpLinter: ...       # (string) alapértelmezett: null
	# beállítja a locale-t
	locale: cs_CZ        # (string) alapértelmezett: null
	# a $this->template objektum osztálya
	templateClass: App\MyTemplateClass # alapértelmezett: Nette\Bridges\ApplicationLatte\DefaultTemplate
Ha a Latte 3-as verzióját használja, új bővítményeket adhat hozzá a következőkkel:
latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Ha a Latte 2-es verzióját használja, új tag-eket regisztrálhat akár az osztálynév megadásával, akár egy
szolgáltatásra való hivatkozással. Alapértelmezés szerint az install() metódus hívódik meg, de ezt meg lehet
változtatni egy másik metódus nevének megadásával:
latte:
	# egyéni Latte tag-ek regisztrálása
	macros:
		- App\MyLatteMacros::register         # statikus metódus, classname vagy callable
		- @App\MyLatteMacrosFactory           # szolgáltatás install() metódussal
		- @App\MyLatteMacrosFactory::register # szolgáltatás register() metódussal
services:
	- App\MyLatteMacrosFactory
Routing
Alapbeállítások:
routing:
	# megjelenjen a routing panel a Tracy Bar-ban?
	debugger: ...   # (bool) alapértelmezett: true
	# szerializálja a routert a DI konténerbe
	cache: ...      # (bool) alapértelmezett: false
A routingot általában a RouterFactory osztályban definiáljuk.
Alternatívaként a route-okat a konfigurációban is definiálhatjuk maszk: akció párokkal, de ez a módszer nem
kínál olyan széleskörű beállítási lehetőségeket:
routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default
Konstansok
PHP konstansok létrehozása.
constants:
	Foobar: 'baz'
Az alkalmazás indítása után létrejön a Foobar konstans.
A konstansok nem szolgálhatnak valamiféle globálisan elérhető változóként. Értékek objektumokba való átadásához használja a dependency injectiont.
PHP
PHP direktívák beállítása. Az összes direktíva áttekintése megtalálható a php.net oldalon.
php:
	date.timezone: Europe/Prague
DI szolgáltatások
Ezek a szolgáltatások kerülnek hozzáadásra a DI konténerhez:
| Név | Típus | Leírás | 
|---|---|---|
application.application | 
			Nette\Application\Application | az egész alkalmazás indítója | 
application.linkGenerator | 
			Nette\Application\LinkGenerator | LinkGenerator | 
application.presenterFactory | 
			Nette\Application\PresenterFactory | presenter factory | 
application.### | 
			Nette\Application\UI\Presenter | egyes presenterek | 
latte.latteFactory | 
			Nette\Bridges\ApplicationLatte\LatteFactory | Latte\Engine objektum factory-ja | 
		
latte.templateFactory | 
			Nette\Application\UI\TemplateFactory | factory a $this->template számára |