Nette Documentation Preview

syntax
Alkalmazás konfigurálása
************************

.[perex]
A Nette alkalmazás konfigurációs lehetőségeinek áttekintése.


Alkalmazás .[#toc-application]
==============================

```neon
application:
	# a "Nette alkalmazás" panelt mutatja a Tracy BlueScreen?
	debugger: ...           # (bool) alapértelmezett értéke true

	# error-presenter meghívásra kerül hiba esetén?
	# csak fejlesztői módban van hatása
	catchExceptions: ...    # (bool) alapértelmezés szerint true

	# error-presenter neve
	errorPresenter: Error   # (string|array) alapértelmezett értéke 'Nette:Error'.

	# aliasokat definiál az előadókhoz és eseményekhez
	aliases: ...

	# meghatározza a prezenter nevének egy osztályra való feloldására vonatkozó szabályokat.
	mapping: ...

	# a rossz linkek figyelmeztetést generálnak?
	# csak fejlesztői módban van hatása
	silentLinks: ...        # (bool) alapértelmezett értéke false
```

A `nette/application` 3.2-es verziójától kezdve lehetőség van hiba-bemutatók párjának definiálására:

```neon
application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException esetében
		5xx: Error5xx   # egyéb kivételek esetén
```

A `silentLinks` opció határozza meg, hogy a Nette hogyan viselkedjen fejlesztői módban, ha a linkgenerálás sikertelen (például mert nincs prezenter stb.). Az alapértelmezett `false` érték azt jelenti, hogy a Nette a `E_USER_WARNING` opciót váltja ki. A `true` beállítása elnyomja ezt a hibaüzenetet. Gyártási környezetben a `E_USER_WARNING` mindig meghívásra kerül. Ezt a viselkedést a [$invalidLinkMode |creating-links#Invalid Links] prezenter változó beállításával is befolyásolhatjuk.

Az [álnevek leegyszerűsítik a |creating-links#aliases] gyakran használt [előadókra való hivatkozást |creating-links#aliases].

A [leképezés meghatározza azokat a szabályokat |modules#mapping], amelyek alapján az osztály neve a prezenter nevéből származik.


Az előadók automatikus regisztrációja .[#toc-automatic-registration-of-presenters]
----------------------------------------------------------------------------------

A Nette automatikusan hozzáadja az előadókat szolgáltatásként a DI konténerhez, ami jelentősen felgyorsítja a létrehozásukat. Az, hogy a Nette hogyan találja meg az előadókat, konfigurálható:

```neon
alkalmazás:
	# előadókat keresni a Composer osztálytérképen?
	scanComposer: ...      # (bool) alapértelmezés szerint true

	# egy maszk, amelynek meg kell egyeznie az osztály- és fájlnévvel.
	scanFilter: ...        # (string) alapértelmezés szerint '*Presenter'

	# mely könyvtárakban keressük az előadókat?
	scanDirs:              # (string[]|false) alapértelmezett értéke '%appDir%'
		- %vendorDir%/mymodule
```

A `scanDirs` alatt felsorolt könyvtárak nem írják felül a `%appDir%` alapértelmezett értékét, hanem kiegészítik azt, így a `scanDirs` tartalmazza a `%appDir%` és a `%vendorDir%/mymodule` elérési utakat is. Ha felül akarjuk írni az alapértelmezett könyvtárat, akkor használjunk [felkiáltójelet |dependency-injection:configuration#Merging]:

```neon
application:
	scanDirs!:
		- %vendorDir%/mymodule
```

A false beállításával kikapcsolhatjuk a könyvtárak beolvasását. Nem javasoljuk a bemutatók automatikus hozzáadásának teljes elnyomását, különben az alkalmazás teljesítménye csökken.


Latte .[#toc-latte]
===================

Ez a beállítás globálisan befolyásolja a Latte viselkedését a komponensekben és a prezenterekben.

```neon
latte:
	# a Latte panelt a Tracy Barban a fő sablonhoz (true) vagy az összes komponenshez (all)?
	debugger: ...        # (true|false|'all') alapértelmezés szerint true

	# generálja a sablonokat declare(strict_types=1)-el.
	strictTypes: ...     # (bool) alapértelmezés szerint false

	# engedélyezi a [szigorú elemző módot |latte:develop#strict mode]
	strictParsing: ...   # (bool) alapértelmezett értéke false

	# engedélyezi a [generált kód ellenőrzését |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) alapértelmezett a null

	# $this->template osztálya
	templateClass:       # alapértelmezett értéke Nette\Bridges\ApplicationLatte\DefaultTemplate
```

Ha a Latte 3. verzióját használja, akkor új [bővítményt |latte:creating-extension] adhat hozzá a következőkkel:

```neon
latte:
	extensions:
		- Latte\Essential\TranslatorExtension
```

/--comment











\--


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

Alapbeállítások:

```neon
routing:
	# mutatja az útvonalválasztó panelt a Tracy Barban?
	debugger: ...   # (bool) alapértelmezett értéke true

	# a router DI konténerbe való szerializálása?
	cache: ...      # (bool) alapértelmezés szerint false
```

A Router általában a [RouterFactory |routing#Route Collection] osztályban van definiálva. Alternatívaként a konfigurációban is definiálhatók útvonalak a `mask: action` párok segítségével, de ez a módszer nem kínál olyan széleskörű variációs lehetőséget a beállítások terén:

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


Állandók .[#toc-constants]
==========================

PHP konstansok létrehozása.

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

A `Foobar` konstans az indítás után jön létre.

.[note]
A konstansok nem szolgálhatnak globálisan elérhető változóként. Ha értékeket akarsz átadni objektumoknak, használd a [függőségi injektálást |dependency-injection:passing-dependencies].


PHP
===

PHP irányelveket állíthat be. Az összes direktíva áttekintése megtalálható a [php.net |https://www.php.net/manual/en/ini.list.php] oldalon.

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


DI szolgáltatások .[#toc-di-services]
=====================================

Ezek a szolgáltatások hozzáadódnak a DI konténerhez:

| Név | Típus | Leírás
|----------------------------------------------------------
| `application.application` | [api:Nette\Application\Application] | [Teljes alkalmazásindító |how-it-works#Nette Application]
| `application.linkGenerator` | [api:Nette\Application\LinkGenerator] | [LinkGenerátor |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] | presenter factory
| `application.###` | [api:Nette\Application\UI\Presenter] | egyéni előadók
| `latte.latteFactory` | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | factory for `Latte\Engine`
| `latte.templateFactory` | [api:Nette\Application\UI\TemplateFactory] | factory for [`$this->template` |templates]

Alkalmazás konfigurálása

A Nette alkalmazás konfigurációs lehetőségeinek áttekintése.

Alkalmazás

application:
	# a "Nette alkalmazás" panelt mutatja a Tracy BlueScreen?
	debugger: ...           # (bool) alapértelmezett értéke true

	# error-presenter meghívásra kerül hiba esetén?
	# csak fejlesztői módban van hatása
	catchExceptions: ...    # (bool) alapértelmezés szerint true

	# error-presenter neve
	errorPresenter: Error   # (string|array) alapértelmezett értéke 'Nette:Error'.

	# aliasokat definiál az előadókhoz és eseményekhez
	aliases: ...

	# meghatározza a prezenter nevének egy osztályra való feloldására vonatkozó szabályokat.
	mapping: ...

	# a rossz linkek figyelmeztetést generálnak?
	# csak fejlesztői módban van hatása
	silentLinks: ...        # (bool) alapértelmezett értéke false

A nette/application 3.2-es verziójától kezdve lehetőség van hiba-bemutatók párjának definiálására:

application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException esetében
		5xx: Error5xx   # egyéb kivételek esetén

A silentLinks opció határozza meg, hogy a Nette hogyan viselkedjen fejlesztői módban, ha a linkgenerálás sikertelen (például mert nincs prezenter stb.). Az alapértelmezett false érték azt jelenti, hogy a Nette a E_USER_WARNING opciót váltja ki. A true beállítása elnyomja ezt a hibaüzenetet. Gyártási környezetben a E_USER_WARNING mindig meghívásra kerül. Ezt a viselkedést a $invalidLinkMode prezenter változó beállításával is befolyásolhatjuk.

Az álnevek leegyszerűsítik a gyakran használt előadókra való hivatkozást.

leképezés meghatározza azokat a szabályokat, amelyek alapján az osztály neve a prezenter nevéből származik.

Az előadók automatikus regisztrációja

A Nette automatikusan hozzáadja az előadókat szolgáltatásként a DI konténerhez, ami jelentősen felgyorsítja a létrehozásukat. Az, hogy a Nette hogyan találja meg az előadókat, konfigurálható:

alkalmazás:
	# előadókat keresni a Composer osztálytérképen?
	scanComposer: ...      # (bool) alapértelmezés szerint true

	# egy maszk, amelynek meg kell egyeznie az osztály- és fájlnévvel.
	scanFilter: ...        # (string) alapértelmezés szerint '*Presenter'

	# mely könyvtárakban keressük az előadókat?
	scanDirs:              # (string[]|false) alapértelmezett értéke '%appDir%'
		- %vendorDir%/mymodule

A scanDirs alatt felsorolt könyvtárak nem írják felül a %appDir% alapértelmezett értékét, hanem kiegészítik azt, így a scanDirs tartalmazza a %appDir% és a %vendorDir%/mymodule elérési utakat is. Ha felül akarjuk írni az alapértelmezett könyvtárat, akkor használjunk felkiáltójelet:

application:
	scanDirs!:
		- %vendorDir%/mymodule

A false beállításával kikapcsolhatjuk a könyvtárak beolvasását. Nem javasoljuk a bemutatók automatikus hozzáadásának teljes elnyomását, különben az alkalmazás teljesítménye csökken.

Latte

Ez a beállítás globálisan befolyásolja a Latte viselkedését a komponensekben és a prezenterekben.

latte:
	# a Latte panelt a Tracy Barban a fő sablonhoz (true) vagy az összes komponenshez (all)?
	debugger: ...        # (true|false|'all') alapértelmezés szerint true

	# generálja a sablonokat declare(strict_types=1)-el.
	strictTypes: ...     # (bool) alapértelmezés szerint false

	# engedélyezi a [szigorú elemző módot |latte:develop#strict mode]
	strictParsing: ...   # (bool) alapértelmezett értéke false

	# engedélyezi a [generált kód ellenőrzését |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) alapértelmezett a null

	# $this->template osztálya
	templateClass:       # alapértelmezett értéke Nette\Bridges\ApplicationLatte\DefaultTemplate

Ha a Latte 3. verzióját használja, akkor új bővítményt adhat hozzá a következőkkel:

latte:
	extensions:
		- Latte\Essential\TranslatorExtension

Routing

Alapbeállítások:

routing:
	# mutatja az útvonalválasztó panelt a Tracy Barban?
	debugger: ...   # (bool) alapértelmezett értéke true

	# a router DI konténerbe való szerializálása?
	cache: ...      # (bool) alapértelmezés szerint false

A Router általában a RouterFactory osztályban van definiálva. Alternatívaként a konfigurációban is definiálhatók útvonalak a mask: action párok segítségével, de ez a módszer nem kínál olyan széleskörű variációs lehetőséget a beállítások terén:

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

Állandók

PHP konstansok létrehozása.

constants:
	Foobar: 'baz'

A Foobar konstans az indítás után jön létre.

A konstansok nem szolgálhatnak globálisan elérhető változóként. Ha értékeket akarsz átadni objektumoknak, használd a függőségi injektálást.

PHP

PHP irányelveket állíthat be. Az összes direktíva áttekintése megtalálható a php.net oldalon.

php:
	date.timezone: Europe/Prague

DI szolgáltatások

Ezek a szolgáltatások hozzáadódnak a DI konténerhez:

Név Típus Leírás
application.application Nette\Application\Application Teljes alkalmazásindító
application.linkGenerator Nette\Application\LinkGenerator LinkGenerátor
application.presenterFactory Nette\Application\PresenterFactory presenter factory
application.### Nette\Application\UI\Presenter egyéni előadók
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory factory for Latte\Engine
latte.templateFactory Nette\Application\UI\TemplateFactory factory for $this->template