Configurarea aplicației
Prezentare generală a opțiunilor de configurare pentru aplicația Nette.
Aplicație
application:
# afișează panoul "Nette Application" în Tracy BlueScreen?
debugger: ... # (bool) valoarea implicită este true
# va fi apelat error-presenter la eroare?
# are efect numai în modul dezvoltator
catchExceptions: ... # (bool) implicit la true
# numele prezentatorului de erori
errorPresenter: Error # (string|array) valoarea implicită este "Nette:Error" (Nette:Error)
# definește pseudonimele pentru prezentatori și evenimente
aliases: ...
# definește regulile de rezolvare a numelui prezentatorului la o clasă
mapping: ...
# legăturile proaste generează avertismente?
# are efect numai în modul dezvoltator
silentLinks: ... # (bool) valoarea implicită este false
Începând cu nette/application
versiunea 3.2, este posibilă definirea unei perechi de prezentatori
de erori:
application:
errorPresenter:
4xx: Error4xx # pentru Nette\Application\BadRequestException
5xx: Error5xx # pentru alte excepții
Opțiunea silentLinks
determină modul în care se comportă Nette în modul de dezvoltare atunci când generarea
legăturilor eșuează (de exemplu, pentru că nu există un prezentator etc.). Valoarea implicită false
înseamnă
că Nette declanșează E_USER_WARNING
. Setarea la true
suprimă acest mesaj de eroare. Într-un mediu
de producție, E_USER_WARNING
este întotdeauna invocat. De asemenea, putem influența acest comportament prin
setarea variabilei presenter $invalidLinkMode.
Pseudonimele simplifică trimiterea la prezentatorii utilizați frecvent.
Cartografierea definește regulile prin care numele clasei este derivat din numele prezentatorului.
Înregistrarea automată a prezentatorilor
Nette adaugă automat prezentatorii ca servicii în containerul DI, ceea ce accelerează semnificativ crearea acestora. Modul în care Nette găsește prezentatorii poate fi configurat:
application:
# pentru a căuta prezentatori în harta clasei Composer?
scanComposer: ... # (bool) valoarea implicită este true
# o mască care trebuie să se potrivească cu numele clasei și al fișierului
scanFilter: ... # (string) valoarea implicită este "*Presenter".
# în ce directoare să se caute prezentatorii?
scanDirs: # (string[]|false) valoarea implicită este "%appDir%".
- %vendorDir%/mymodule
Directoarele listate în scanDirs
nu înlocuiesc valoarea implicită %appDir%
, ci o completează,
astfel încât scanDirs
va conține atât căile %appDir%
cât și %vendorDir%/mymodule
.
Dacă dorim să suprascriem directorul implicit, folosim semnul
exclamării:
application:
scanDirs!:
- %vendorDir%/mymodule
Scanarea directoarelor poate fi dezactivată prin setarea false. Nu recomandăm suprimarea completă a adăugării automate a prezentatorilor, în caz contrar performanța aplicației va fi redusă.
Latte
Această setare afectează în mod global comportamentul lui Latte în componente și prezentatori.
latte:
# afișează panoul Latte în bara Tracy pentru șablonul principal (true) sau pentru toate componentele (all)?
debugger: ... # (true|false|'all') valoarea implicită este true
# generează șabloane cu declare(strict_types=1)
strictTypes: ... # (bool) valoarea implicită este false
# activează [modul strict parser |latte:develop#strict mode]
strictParsing: ... # (bool) valoarea implicită este false
# activează [verificarea codului generat |latte:develop#Checking Generated Code]
phpLinter: ... # (string) implicit este null
# stabilește localul
locale: cs_CZ # (string) implicit este nul
# clasa lui $this->template
templateClass: App\MyTemplateClass # valoarea implicită este Nette\Bridges\ApplicationLatte\DefaultTemplate
Dacă utilizați Latte versiunea 3, puteți adăuga o nouă extensie utilizând:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Rutarea
Setări de bază:
routing:
# afișează panoul de rutare în Tracy Bar?
debugger: ... # (bool) valoarea implicită este true
# pentru a serializa routerul în containerul DI?
cache: ... # (bool) valoarea implicită este false
Routerul este de obicei definit în clasa RouterFactory. Alternativ, rutele pot
fi definite și în configurație, utilizând perechile mask: action
, dar această metodă nu oferă o variație
atât de mare de setări:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Constantele
Crearea constantelor PHP.
constants:
Foobar: 'baz'
Constanta Foobar
va fi creată după pornire.
Constantele nu trebuie să servească drept variabile disponibile la nivel global. Pentru a transmite valori obiectelor, utilizați injecția de dependență.
PHP
Puteți seta directive PHP. O prezentare generală a tuturor directivelor poate fi găsită la php.net.
php:
date.timezone: Europe/Prague
Servicii DI
Aceste servicii sunt adăugate la containerul DI:
Nume | Tip | Tip | Descriere
application.application |
Nette\Application\Application | Lansator de aplicații complete | |
---|---|---|---|
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator | |
application.presenterFactory |
Nette\Application\PresenterFactory | Fabrica de prezentări | |
application.### |
Nette\Application\UI\Presenter | prezentatori individuali | |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | fabrică pentru Latte\Engine |
|
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fabrica pentru $this->template |