Alkalmazás konfigurálása

A Nette alkalmazás konfigurációs lehetőségeinek áttekintése.

Alkalmazás

application:
	# a "Nette alkalmazás" panelt mutatja a Tracy BlueScreen?
	debugger: ...           # (bool) alapértelmezett értéke true

	# error-presenter meghívásra kerül hiba esetén?
	# csak fejlesztői módban van hatása
	catchExceptions: ...    # (bool) alapértelmezés szerint true

	# error-presenter neve
	errorPresenter: Error   # (string|array) alapértelmezett értéke 'Nette:Error'.

	# aliasokat definiál az előadókhoz és eseményekhez
	aliases: ...

	# meghatározza a prezenter nevének egy osztályra való feloldására vonatkozó szabályokat.
	mapping: ...

	# a rossz linkek figyelmeztetést generálnak?
	# csak fejlesztői módban van hatása
	silentLinks: ...        # (bool) alapértelmezett értéke false

A nette/application 3.2-es verziójától kezdve lehetőség van hiba-bemutatók párjának definiálására:

application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException esetében
		5xx: Error5xx   # egyéb kivételek esetén

A silentLinks opció határozza meg, hogy a Nette hogyan viselkedjen fejlesztői módban, ha a linkgenerálás sikertelen (például mert nincs prezenter stb.). Az alapértelmezett false érték azt jelenti, hogy a Nette a E_USER_WARNING opciót váltja ki. A true beállítása elnyomja ezt a hibaüzenetet. Gyártási környezetben a E_USER_WARNING mindig meghívásra kerül. Ezt a viselkedést a $invalidLinkMode prezenter változó beállításával is befolyásolhatjuk.

Az álnevek leegyszerűsítik a gyakran használt előadókra való hivatkozást.

leképezés meghatározza azokat a szabályokat, amelyek alapján az osztály neve a prezenter nevéből származik.

Az előadók automatikus regisztrációja

A Nette automatikusan hozzáadja az előadókat szolgáltatásként a DI konténerhez, ami jelentősen felgyorsítja a létrehozásukat. Az, hogy a Nette hogyan találja meg az előadókat, konfigurálható:

alkalmazás:
	# előadókat keresni a Composer osztálytérképen?
	scanComposer: ...      # (bool) alapértelmezés szerint true

	# egy maszk, amelynek meg kell egyeznie az osztály- és fájlnévvel.
	scanFilter: ...        # (string) alapértelmezés szerint '*Presenter'

	# mely könyvtárakban keressük az előadókat?
	scanDirs:              # (string[]|false) alapértelmezett értéke '%appDir%'
		- %vendorDir%/mymodule

A scanDirs alatt felsorolt könyvtárak nem írják felül a %appDir% alapértelmezett értékét, hanem kiegészítik azt, így a scanDirs tartalmazza a %appDir% és a %vendorDir%/mymodule elérési utakat is. Ha felül akarjuk írni az alapértelmezett könyvtárat, akkor használjunk felkiáltójelet:

application:
	scanDirs!:
		- %vendorDir%/mymodule

A false beállításával kikapcsolhatjuk a könyvtárak beolvasását. Nem javasoljuk a bemutatók automatikus hozzáadásának teljes elnyomását, különben az alkalmazás teljesítménye csökken.

Latte

Ez a beállítás globálisan befolyásolja a Latte viselkedését a komponensekben és a prezenterekben.

latte:
	# a Latte panelt a Tracy Barban a fő sablonhoz (true) vagy az összes komponenshez (all)?
	debugger: ...        # (true|false|'all') alapértelmezés szerint true

	# generálja a sablonokat declare(strict_types=1)-el.
	strictTypes: ...     # (bool) alapértelmezés szerint false

	# engedélyezi a [szigorú elemző módot |latte:develop#strict mode]
	strictParsing: ...   # (bool) alapértelmezett értéke false

	# engedélyezi a [generált kód ellenőrzését |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) alapértelmezett a null

	# beállítja a nyelvjárást
	locale: cs_CZ        # (string) alapértelmezett érték nulla

	# $this->template osztálya
	templateClass:       # alapértelmezett értéke Nette\Bridges\ApplicationLatte\DefaultTemplate

Ha a Latte 3. verzióját használja, akkor új bővítményt adhat hozzá a következőkkel:

latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)

Routing

Alapbeállítások:

routing:
	# mutatja az útvonalválasztó panelt a Tracy Barban?
	debugger: ...   # (bool) alapértelmezett értéke true

	# a router DI konténerbe való szerializálása?
	cache: ...      # (bool) alapértelmezés szerint false

A Router általában a RouterFactory osztályban van definiálva. Alternatívaként a konfigurációban is definiálhatók útvonalak a mask: action párok segítségével, de ez a módszer nem kínál olyan széleskörű variációs lehetőséget a beállítások terén:

routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default

Állandók

PHP konstansok létrehozása.

constants:
	Foobar: 'baz'

A Foobar konstans az indítás után jön létre.

A konstansok nem szolgálhatnak globálisan elérhető változóként. Ha értékeket akarsz átadni objektumoknak, használd a függőségi injektálást.

PHP

PHP irányelveket állíthat be. 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 hozzáadódnak a DI konténerhez:

Név Típus Leírás
application.application Nette\Application\Application Teljes alkalmazásindító
application.linkGenerator Nette\Application\LinkGenerator LinkGenerátor
application.presenterFactory Nette\Application\PresenterFactory presenter factory
application.### Nette\Application\UI\Presenter egyéni előadók
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory factory for Latte\Engine
latte.templateFactory Nette\Application\UI\TemplateFactory factory for $this->template
verzió: 4.0