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
različica: 4.0