Nette Documentation Preview

syntax
Ρύθμιση της εφαρμογής
*********************

.[perex]
Επισκόπηση των επιλογών διαμόρφωσης για την εφαρμογή Nette.


Εφαρμογή .[#toc-application]
============================

```neon
application:
	# δείχνει τον πίνακα "Nette Application" στο Tracy BlueScreen?
	debugger: ...           # (bool) προεπιλογή true

	# θα κληθεί ο παρουσιαστής σφαλμάτων στο σφάλμα;
	# έχει αποτέλεσμα μόνο σε λειτουργία προγραμματιστή
	catchExceptions: ...    # (bool) προεπιλογή true

	# όνομα του error-presenter
	errorPresenter: Error   # (string|array) προεπιλογή 'Nette:Error'

	# ορίζει ψευδώνυμα για παρουσιαστές και εκδηλώσεις
	aliases: ...

	# ορίζει τους κανόνες για την επίλυση του ονόματος του παρουσιαστή σε μια κλάση
	mapping: ...

	# οι κακοί σύνδεσμοι δημιουργούν προειδοποιήσεις;
	# έχει αποτέλεσμα μόνο στη λειτουργία προγραμματιστή
	silentLinks: ...        # (bool) προεπιλογή σε false
```

Από την έκδοση 3.2 του `nette/application` είναι δυνατό να ορίσετε ένα ζεύγος παρουσιαστών σφαλμάτων:

```neon
application:
	errorPresenter:
		4xx: Error4xx   # για την εξαίρεση Nette\Application\BadRequestException
		5xx: Error5xx   # για άλλες εξαιρέσεις
```

Η επιλογή `silentLinks` καθορίζει τον τρόπο με τον οποίο η Nette συμπεριφέρεται στη λειτουργία ανάπτυξης όταν η δημιουργία συνδέσμων αποτυγχάνει (για παράδειγμα, επειδή δεν υπάρχει παρουσιαστής κ.λπ.). Η προεπιλεγμένη τιμή `false` σημαίνει ότι η Nette ενεργοποιεί το `E_USER_WARNING`. Η ρύθμιση σε `true` καταστέλλει αυτό το μήνυμα σφάλματος. Σε περιβάλλον παραγωγής, το `E_USER_WARNING` ενεργοποιείται πάντα. Μπορούμε επίσης να επηρεάσουμε αυτή τη συμπεριφορά θέτοντας τη μεταβλητή του παρουσιαστή [$invalidLinkMode |creating-links#Invalid Links].

Τα [ψευδώνυμα απλοποιούν την αναφορά σε |creating-links#aliases] συχνά χρησιμοποιούμενους παρουσιαστές.

Η [αντιστοίχιση ορίζει τους κανόνες |modules#mapping] με τους οποίους το όνομα της κλάσης προκύπτει από το όνομα του παρουσιαστή.


Αυτόματη εγγραφή παρουσιαστών .[#toc-automatic-registration-of-presenters]
--------------------------------------------------------------------------

Η Nette προσθέτει αυτόματα τους παρουσιαστές ως υπηρεσίες στο δοχείο DI, γεγονός που επιταχύνει σημαντικά τη δημιουργία τους. Ο τρόπος με τον οποίο η Nette βρίσκει τους παρουσιαστές μπορεί να ρυθμιστεί:

```neon
application:
	# να αναζητήσετε παρουσιαστές στο χάρτη τάξεων του Composer;
	scanComposer: ...      # (bool) προεπιλογή true

	# μια μάσκα που πρέπει να ταιριάζει με το όνομα της κλάσης και του αρχείου
	scanFilter: ...        # (string) προεπιλογή '*Presenter'

	# σε ποιους καταλόγους να αναζητηθούν οι παρουσιαστές;
	scanDirs:              # (string[]|false) προεπιλογή '%appDir%'
		- %vendorDir%/mymodule
```

Οι κατάλογοι που παρατίθενται στο `scanDirs` δεν αντικαθιστούν την προεπιλεγμένη τιμή `%appDir%`, αλλά τη συμπληρώνουν, οπότε το `scanDirs` θα περιέχει και τα δύο μονοπάτια `%appDir%` και `%vendorDir%/mymodule`. Αν θέλουμε να αντικαταστήσουμε τον προεπιλεγμένο κατάλογο, χρησιμοποιούμε [θαυμαστικό |dependency-injection:configuration#Merging]:

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

Η σάρωση καταλόγων μπορεί να απενεργοποιηθεί με τη ρύθμιση false. Δεν συνιστούμε την πλήρη καταστολή της αυτόματης προσθήκης παρουσιαστών, διαφορετικά θα μειωθεί η απόδοση της εφαρμογής.


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

Αυτή η ρύθμιση επηρεάζει συνολικά τη συμπεριφορά του Latte σε συστατικά και παρουσιαστές.

```neon
latte:
	# εμφανίζει τον πίνακα Latte στη γραμμή Tracy για το κύριο πρότυπο (true) ή για όλα τα στοιχεία (all);
	debugger: ...        # (true|false|'all') προεπιλογή true

	# παράγει πρότυπα με declare(strict_types=1)
	strictTypes: ...     # (bool) προεπιλογή σε false

	# ενεργοποιεί την [αυστηρή λειτουργία του αναλυτή |latte:develop#strict mode]
	strictParsing: ...   # (bool) η προεπιλογή είναι false

	# ενεργοποιεί τον [έλεγχο του παραγόμενου κώδικα |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) η προεπιλογή είναι null

	# κλάση του $this->template
	templateClass: App\MyTemplateClass # προεπιλογή σε Nette\Bridges\ApplicationLatte\DefaultTemplate
```

Αν χρησιμοποιείτε την έκδοση 3 του Latte, μπορείτε να προσθέσετε νέα [επέκταση |latte:creating-extension] χρησιμοποιώντας:

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

/--comment











\--


Δρομολόγηση .[#toc-routing]
===========================

Βασικές ρυθμίσεις:

```neon
routing:
	# εμφανίζει πίνακα δρομολόγησης στο Tracy Bar?
	debugger: ...   # (bool) προεπιλογή true

	# για να σειριοποιήσετε το δρομολογητή σε δοχείο DI?
	cache: ...      # (bool) προεπιλογή σε false
```

Router ορίζεται συνήθως στην κλάση [RouterFactory |routing#Route Collection]. Εναλλακτικά, οι δρομολογήσεις μπορούν επίσης να οριστούν στη διαμόρφωση χρησιμοποιώντας ζεύγη `mask: action`, αλλά αυτή η μέθοδος δεν προσφέρει τόσο μεγάλη ποικιλία ρυθμίσεων:

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


Σταθερές .[#toc-constants]
==========================

Δημιουργία σταθερών PHP.

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

Η σταθερά `Foobar` θα δημιουργηθεί μετά την εκκίνηση.

.[note]
Οι σταθερές δεν πρέπει να χρησιμεύουν ως παγκόσμια διαθέσιμες μεταβλητές. Για να περάσετε τιμές σε αντικείμενα, χρησιμοποιήστε το [dependency injection |dependency-injection:passing-dependencies].


PHP
===

Μπορείτε να ορίσετε οδηγίες PHP. Μια επισκόπηση όλων των οδηγιών μπορείτε να βρείτε στο [php |https://www.php.net/manual/en/ini.list.php].

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


Υπηρεσίες DI .[#toc-di-services]
================================

Αυτές οι υπηρεσίες προστίθενται στο δοχείο DI:

| Όνομα | Τύπος | Περιγραφή
|----------------------------------------------------------
| `application.application` | [api:Nette\Application\Application] | [Εκτοξευτής πλήρους εφαρμογής |how-it-works#Nette Application]
| `application.linkGenerator` | [api:Nette\Application\LinkGenerator] | [LinkGenerator |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] | presenter factory
| `application.###` | [api:Nette\Application\UI\Presenter] | μεμονωμένοι παρουσιαστές
| `latte.latteFactory` | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | εργοστάσιο για `Latte\Engine`
| `latte.templateFactory` | [api:Nette\Application\UI\TemplateFactory] | factory for [`$this->template` |templates]

Ρύθμιση της εφαρμογής

Επισκόπηση των επιλογών διαμόρφωσης για την εφαρμογή Nette.

Εφαρμογή

application:
	# δείχνει τον πίνακα "Nette Application" στο Tracy BlueScreen?
	debugger: ...           # (bool) προεπιλογή true

	# θα κληθεί ο παρουσιαστής σφαλμάτων στο σφάλμα;
	# έχει αποτέλεσμα μόνο σε λειτουργία προγραμματιστή
	catchExceptions: ...    # (bool) προεπιλογή true

	# όνομα του error-presenter
	errorPresenter: Error   # (string|array) προεπιλογή 'Nette:Error'

	# ορίζει ψευδώνυμα για παρουσιαστές και εκδηλώσεις
	aliases: ...

	# ορίζει τους κανόνες για την επίλυση του ονόματος του παρουσιαστή σε μια κλάση
	mapping: ...

	# οι κακοί σύνδεσμοι δημιουργούν προειδοποιήσεις;
	# έχει αποτέλεσμα μόνο στη λειτουργία προγραμματιστή
	silentLinks: ...        # (bool) προεπιλογή σε false

Από την έκδοση 3.2 του nette/application είναι δυνατό να ορίσετε ένα ζεύγος παρουσιαστών σφαλμάτων:

application:
	errorPresenter:
		4xx: Error4xx   # για την εξαίρεση Nette\Application\BadRequestException
		5xx: Error5xx   # για άλλες εξαιρέσεις

Η επιλογή silentLinks καθορίζει τον τρόπο με τον οποίο η Nette συμπεριφέρεται στη λειτουργία ανάπτυξης όταν η δημιουργία συνδέσμων αποτυγχάνει (για παράδειγμα, επειδή δεν υπάρχει παρουσιαστής κ.λπ.). Η προεπιλεγμένη τιμή false σημαίνει ότι η Nette ενεργοποιεί το E_USER_WARNING. Η ρύθμιση σε true καταστέλλει αυτό το μήνυμα σφάλματος. Σε περιβάλλον παραγωγής, το E_USER_WARNING ενεργοποιείται πάντα. Μπορούμε επίσης να επηρεάσουμε αυτή τη συμπεριφορά θέτοντας τη μεταβλητή του παρουσιαστή $invalidLinkMode.

Τα ψευδώνυμα απλοποιούν την αναφορά σε συχνά χρησιμοποιούμενους παρουσιαστές.

Η αντιστοίχιση ορίζει τους κανόνες με τους οποίους το όνομα της κλάσης προκύπτει από το όνομα του παρουσιαστή.

Αυτόματη εγγραφή παρουσιαστών

Η Nette προσθέτει αυτόματα τους παρουσιαστές ως υπηρεσίες στο δοχείο DI, γεγονός που επιταχύνει σημαντικά τη δημιουργία τους. Ο τρόπος με τον οποίο η Nette βρίσκει τους παρουσιαστές μπορεί να ρυθμιστεί:

application:
	# να αναζητήσετε παρουσιαστές στο χάρτη τάξεων του Composer;
	scanComposer: ...      # (bool) προεπιλογή true

	# μια μάσκα που πρέπει να ταιριάζει με το όνομα της κλάσης και του αρχείου
	scanFilter: ...        # (string) προεπιλογή '*Presenter'

	# σε ποιους καταλόγους να αναζητηθούν οι παρουσιαστές;
	scanDirs:              # (string[]|false) προεπιλογή '%appDir%'
		- %vendorDir%/mymodule

Οι κατάλογοι που παρατίθενται στο scanDirs δεν αντικαθιστούν την προεπιλεγμένη τιμή %appDir%, αλλά τη συμπληρώνουν, οπότε το scanDirs θα περιέχει και τα δύο μονοπάτια %appDir% και %vendorDir%/mymodule. Αν θέλουμε να αντικαταστήσουμε τον προεπιλεγμένο κατάλογο, χρησιμοποιούμε θαυμαστικό:

application:
	scanDirs!:
		- %vendorDir%/mymodule

Η σάρωση καταλόγων μπορεί να απενεργοποιηθεί με τη ρύθμιση false. Δεν συνιστούμε την πλήρη καταστολή της αυτόματης προσθήκης παρουσιαστών, διαφορετικά θα μειωθεί η απόδοση της εφαρμογής.

Latte

Αυτή η ρύθμιση επηρεάζει συνολικά τη συμπεριφορά του Latte σε συστατικά και παρουσιαστές.

latte:
	# εμφανίζει τον πίνακα Latte στη γραμμή Tracy για το κύριο πρότυπο (true) ή για όλα τα στοιχεία (all);
	debugger: ...        # (true|false|'all') προεπιλογή true

	# παράγει πρότυπα με declare(strict_types=1)
	strictTypes: ...     # (bool) προεπιλογή σε false

	# ενεργοποιεί την [αυστηρή λειτουργία του αναλυτή |latte:develop#strict mode]
	strictParsing: ...   # (bool) η προεπιλογή είναι false

	# ενεργοποιεί τον [έλεγχο του παραγόμενου κώδικα |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) η προεπιλογή είναι null

	# κλάση του $this->template
	templateClass: App\MyTemplateClass # προεπιλογή σε Nette\Bridges\ApplicationLatte\DefaultTemplate

Αν χρησιμοποιείτε την έκδοση 3 του Latte, μπορείτε να προσθέσετε νέα επέκταση χρησιμοποιώντας:

latte:
	extensions:
		- Latte\Essential\TranslatorExtension

Δρομολόγηση

Βασικές ρυθμίσεις:

routing:
	# εμφανίζει πίνακα δρομολόγησης στο Tracy Bar?
	debugger: ...   # (bool) προεπιλογή true

	# για να σειριοποιήσετε το δρομολογητή σε δοχείο DI?
	cache: ...      # (bool) προεπιλογή σε false

Router ορίζεται συνήθως στην κλάση RouterFactory. Εναλλακτικά, οι δρομολογήσεις μπορούν επίσης να οριστούν στη διαμόρφωση χρησιμοποιώντας ζεύγη mask: action, αλλά αυτή η μέθοδος δεν προσφέρει τόσο μεγάλη ποικιλία ρυθμίσεων:

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

Σταθερές

Δημιουργία σταθερών PHP.

constants:
	Foobar: 'baz'

Η σταθερά Foobar θα δημιουργηθεί μετά την εκκίνηση.

Οι σταθερές δεν πρέπει να χρησιμεύουν ως παγκόσμια διαθέσιμες μεταβλητές. Για να περάσετε τιμές σε αντικείμενα, χρησιμοποιήστε το dependency injection.

PHP

Μπορείτε να ορίσετε οδηγίες PHP. Μια επισκόπηση όλων των οδηγιών μπορείτε να βρείτε στο php.

php:
	date.timezone: Europe/Prague

Υπηρεσίες DI

Αυτές οι υπηρεσίες προστίθενται στο δοχείο DI:

Όνομα Τύπος Περιγραφή
application.application Nette\Application\Application Εκτοξευτής πλήρους εφαρμογής
application.linkGenerator Nette\Application\LinkGenerator LinkGenerator
application.presenterFactory Nette\Application\PresenterFactory presenter factory
application.### Nette\Application\UI\Presenter μεμονωμένοι παρουσιαστές
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory εργοστάσιο για Latte\Engine
latte.templateFactory Nette\Application\UI\TemplateFactory factory for $this->template