Ρύθμιση της εφαρμογής
Επισκόπηση των επιλογών διαμόρφωσης για την εφαρμογή Nette.
Εφαρμογή
application:
# δείχνει τον πίνακα "Nette Application" στο Tracy BlueScreen?
debugger: ... # (bool) προεπιλογή true
# θα καλείται ο παρουσιαστής σφαλμάτων σε περίπτωση σφάλματος;
catchExceptions: ... # (bool) προεπιλεγμένη τιμή true σε κατάσταση παραγωγής
# όνομα του error-presenter
errorPresenter: Error # (string) προεπιλογή 'Nette:Error'
# ορίζει τους κανόνες για την επίλυση του ονόματος του παρουσιαστή σε μια κλάση
mapping: ...
# οι κακοί σύνδεσμοι δημιουργούν προειδοποιήσεις;
# έχει αποτέλεσμα μόνο στη λειτουργία προγραμματιστή
silentLinks: ... # (bool) προεπιλογή σε false
Επειδή οι παρουσιαστές σφαλμάτων δεν καλούνται εξ ορισμού σε
κατάσταση ανάπτυξης και τα σφάλματα εμφανίζονται από το Tracy, η αλλαγή
της τιμής catchExceptions
σε true
βοηθάει στην επαλήθευση της
σωστής λειτουργίας των παρουσιαστών σφαλμάτων κατά την ανάπτυξη.
Η επιλογή 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 |