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

	# va fi apelat error-presenter la eroare?
	# are efect numai în modul dezvoltator
	catchExceptions: ...    # (true|false|4xx) implicit 4xx

	# numele prezentatorului de erori
	errorPresenter: Error   # (string|array) 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

Începând cu nette/application versiunea 3.2, valoarea implicită pentru catchExceptions este 4xx, ceea ce înseamnă că prezentatorul de erori este utilizat numai pentru excepțiile Nette\Application\BadRequestException care reprezintă erori HTTP 4xx. În plus, este posibil să se definească o pereche de error-presenters:

application:
	errorPresenter:
		4xx: Error4xx   # pentru Nette\Application\BadRequestException
		5xx: Error5xx   # pentru alte excepții

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

	# generează șabloane cu declare(strict_types=1)
	strictTypes: ...     # (bool) valoarea implicită este false

	# activează [modul strict parser |latte:develop#strict mode]
	strictParsing: ...   # (bool) valoarea implicită este false

	# activează [verificarea codului generat |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) implicit este null

	# 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

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

Servicii DI

Aceste servicii sunt adăugate la containerul DI:

Nume | Tip | Tip | Descriere

application.application Nette\Application\Application Lansator de aplicații complete
application.linkGenerator Nette\Application\LinkGenerator   LinkGenerator
application.presenterFactory Nette\Application\PresenterFactory   Fabrica de prezentări
application.### Nette\Application\UI\Presenter prezentatori individuali  
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory fabrică pentru Latte\Engine  
latte.templateFactory Nette\Application\UI\TemplateFactory fabrica pentru $this->template  
versiune: 4.0