Konfiguriranje aplikacije
Pregled možnosti konfiguracije za aplikacijo Nette.
Aplikacija
application:
# prikazuje ploščo "Nette Application" v programu Tracy BlueScreen?
debugger: ... # (bool) privzeto je true
# se bo ob napaki poklical predstavnik napak?
# učinkuje samo v načinu za razvijalce
catchExceptions: ... # (bool) privzeto true
# ime programa error-presenter
errorPresenter: Error # (string|array) privzeto 'Nette:Error'
# določa vzdevke za voditelje in dogodke
aliases: ...
# določa pravila za razrešitev imena predstavnika na razred
mapping: ...
# ali slabe povezave ustvarjajo opozorila?
# učinkuje samo v načinu za razvijalce
silentLinks: ... # (bool) privzeto je false
Od različice nette/application
3.2 je mogoče določiti par predstavnikov napak:
application:
errorPresenter:
4xx: Error4xx # za Nette\Application\BadRequestException
5xx: Error5xx # za druge izjeme
Možnost silentLinks
določa, kako se Nette obnaša v razvojnem načinu, ko generiranje povezav ne uspe (na
primer ker ni predstavnika itd.). Privzeta vrednost false
pomeni, da Nette sproži E_USER_WARNING
.
Nastavitev na true
to sporočilo o napaki odpravi. V produkcijskem okolju se vedno sproži
E_USER_WARNING
. Na to obnašanje lahko vplivamo tudi z nastavitvijo spremenljivke presenterja $invalidLinkMode.
Psevdonimi poenostavijo sklicevanje na pogosto uporabljene predstavnike.
Prikazovanje določa pravila, po katerih se ime razreda izpelje iz imena predstavnika.
Samodejna registracija predavateljev
Nette samodejno doda predstavnike kot storitve v vsebnik DI, kar znatno pospeši njihovo ustvarjanje. Kako Nette najde predstavnike, lahko nastavite:
application:
# za iskanje predavateljev na zemljevidu razredov programa Composer?
scanComposer: ... # (bool) privzeto true
# maska, ki se mora ujemati z imenom razreda in datoteke
scanFilter: ... # (string) privzeto '*Presenter'
# v katerih imenikih iskati predstavnike?
scanDirs: # (string[]|false) privzeto '%appDir%'
- %vendorDir%/mymodule
Imeniki, navedeni v scanDirs
, ne nadomeščajo privzete vrednosti %appDir%
, temveč jo dopolnjujejo,
tako da bo scanDirs
vseboval poti %appDir%
in %vendorDir%/mymodule
. Če želimo prepisati
privzeti imenik, uporabimo izklicaj:
application:
scanDirs!:
- %vendorDir%/mymodule
Pregledovanje imenikov lahko izklopimo z nastavitvijo false. Ne priporočamo popolne ukinitve samodejnega dodajanja predstavnikov, sicer se bo zmanjšalo delovanje aplikacije.
Latte
Ta nastavitev globalno vpliva na obnašanje programa Latte v komponentah in predstavitvah.
latte:
# prikaže ploščo Latte v Tracy Baru za glavno predlogo (true) ali za vse komponente (all)?
debugger: ... # (true|false|'all') privzeto je true
# generira predloge z declare(strict_types=1)
strictTypes: ... # (bool) privzeto je false
# omogoči [strogi način pregledovalnika |latte:develop#strict mode]
strictParsing: ... # (bool) privzeto je false
# omogoča [preverjanje ustvarjene kode |latte:develop#Checking Generated Code]
phpLinter: ... # (string) privzeto je null
# nastavi krajevni jezik
locale: cs_CZ # (string) privzeto je nič
# razred $this->template
templateClass: App\MyTemplateClass # privzeto je Nette\Bridges\ApplicationLatte\DefaultTemplate
Če uporabljate različico Latte 3, lahko novo razširitev dodate z uporabo:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Usmerjanje
Osnovne nastavitve:
routing:
# prikazuje usmerjevalno ploščo v vrstici Tracy Bar?
debugger: ... # (bool) privzeto je true
# serializirati usmerjevalnik v vsebnik DI?
cache: ... # (bool) privzeto false
Usmerjevalnik je običajno definiran v razredu RouterFactory. Alternativno
lahko usmerjevalnike določimo tudi v konfiguraciji z uporabo parov mask: action
, vendar ta način ne ponuja tako
široke variabilnosti nastavitev:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Konstante
Ustvarjanje konstant PHP.
constants:
Foobar: 'baz'
Konstanta Foobar
bo ustvarjena po zagonu.
Konstante ne smejo služiti kot globalno dostopne spremenljivke. Za posredovanje vrednosti objektom uporabite vbrizgavanje odvisnosti.
PHP
Nastavite lahko direktive PHP. Pregled vseh direktiv je na voljo na php.net.
php:
date.timezone: Europe/Prague
Storitve DI
Te storitve so dodane vsebniku DI:
Ime | Vrsta | Opis |
---|---|---|
application.application |
Nette\Application\Application | zaganjalnik celotne aplikacije |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | presenter factory |
application.### |
Nette\Application\UI\Presenter | posamezni predavatelji |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | tovarna za Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | tovarna za $this->template |