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
# error-presenter va fi apelat în caz de eroare?
catchExceptions: ... # (bool) implicit la true în modul de producție
# numele prezentatorului de erori
errorPresenter: Error # (string) valoarea implicită este "Nette:Error" (Nette:Error)
# 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
Deoarece error-presenters nu este apelat în mod implicit în modul de dezvoltare, iar erorile sunt afișate de Tracy,
schimbarea valorii catchExceptions
în true
ajută la verificarea funcționării corecte a
error-presenters în timpul dezvoltării.
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.
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
# comută Latte în modul XHTML (depreciat)
xhtml: ... # (bool) valoarea implicită este false
# generează șabloane cu declare(strict_types=1)
strictTypes: ... # (bool) valoarea implicită este false
# 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
Dacă utilizați Latte versiunea 2, puteți înregistra noi etichete fie prin introducerea numelui clasei, fie prin trimitere
la serviciu. Metoda install()
este apelată în mod implicit, dar acest lucru poate fi schimbat prin specificarea
numelui unei alte metode:
latte:
# înregistrarea etichetelor de utilizator Latte
macros:
- App\MyLatteMacros::register # metodă statică, nume de clasă sau callable
- @App\MyLatteMacrosFactory # serviciu cu metodă de instalare
- @App\MyLatteMacrosFactory::register # serviciu cu metoda register
services:
- App\MyLatteMacrosFactory
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