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.
A 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 |