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.

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
verzió: 4.0