Nette Documentation Preview

syntax
Configurarea aplicației
***********************

.[perex]
Prezentare generală a opțiunilor de configurare pentru aplicația Nette.


Aplicație .[#toc-application]
=============================

```neon
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: ...    # (bool) implicit la true

	# numele prezentatorului de erori
	errorPresenter: Error   # (string|array) valoarea implicită este "Nette:Error" (Nette:Error)

	# definește pseudonimele pentru prezentatori și evenimente
	aliases: ...

	# 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, este posibilă definirea unei perechi de prezentatori de erori:

```neon
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 |creating-links#Invalid Links].

[Pseudonimele simplifică trimiterea |creating-links#aliases] la prezentatorii utilizați frecvent.

 [Cartografierea definește regulile |modules#mapping] prin care numele clasei este derivat din numele prezentatorului.


Înregistrarea automată a prezentatorilor .[#toc-automatic-registration-of-presenters]
-------------------------------------------------------------------------------------

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:

```neon
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 |dependency-injection:configuration#Merging]:

```neon
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 .[#toc-latte]
===================

Această setare afectează în mod global comportamentul lui Latte în componente și prezentatori.

```neon
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

	# stabilește localul
	locale: cs_CZ        # (string) implicit este nul

	# 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 |latte:creating-extension] utilizând:

```neon
latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
```

/--comment











\--


Rutarea .[#toc-routing]
=======================

Setări de bază:

```neon
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 |routing#Route Collection]. 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:

```neon
routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default
```


Constantele .[#toc-constants]
=============================

Crearea constantelor PHP.

```neon
constants:
	Foobar: 'baz'
```

Constanta `Foobar` va fi creată după pornire.

.[note]
Constantele nu trebuie să servească drept variabile disponibile la nivel global. Pentru a transmite valori obiectelor, utilizați [injecția de dependență |dependency-injection:passing-dependencies].


PHP
===

Puteți seta directive PHP. O prezentare generală a tuturor directivelor poate fi găsită la [php.net |https://www.php.net/manual/en/ini.list.php].

```neon
php:
	date.timezone: Europe/Prague
```


Servicii DI .[#toc-di-services]
===============================

Aceste servicii sunt adăugate la containerul DI:

Nume | Tip | Tip | Descriere
|----------------------------------------------------------
| `application.application` | [api:Nette\Application\Application] | [Lansator de aplicații complete |how-it-works#Nette Application]
| `application.linkGenerator` | [api:Nette\Application\LinkGenerator] | | [LinkGenerator |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] | | Fabrica de prezentări
| `application.###` | [api:Nette\Application\UI\Presenter] | prezentatori individuali
| `latte.latteFactory` | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | fabrică pentru `Latte\Engine`
| `latte.templateFactory` | [api:Nette\Application\UI\TemplateFactory] | fabrica pentru [`$this->template` |templates]

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: ...    # (bool) implicit la true

	# numele prezentatorului de erori
	errorPresenter: Error   # (string|array) valoarea implicită este "Nette:Error" (Nette:Error)

	# definește pseudonimele pentru prezentatori și evenimente
	aliases: ...

	# 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, este posibilă definirea unei perechi de prezentatori de erori:

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.

Pseudonimele simplifică trimiterea la prezentatorii utilizați frecvent.

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

	# stabilește localul
	locale: cs_CZ        # (string) implicit este nul

	# 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(@Nette\Localization\Translator)

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