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

	# 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