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
versiune: 4.0