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
# ali se ob napaki pokliče error-presenter?
catchExceptions: ... # (bool) privzeto true v produkcijskem načinu
# ime programa error-presenter
errorPresenter: Error # (string) privzeto 'Nette:Error'
# 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
Ker se v razvojnem načinu predstavniki napak privzeto ne kličejo, napake pa prikazuje Tracy, sprememba vrednosti
catchExceptions
v true
pomaga preveriti, ali predstavniki napak med razvojem delujejo pravilno.
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.
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
# 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
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 |