Anwendung konfigurieren
Überblick über die Konfigurationsoptionen für die Nette-Anwendung.
Anwendung
Anwendung:
# zeigt das Feld "Nette Anwendung" in Tracy BlueScreen?
debugger: ... # (bool) standardmäßig true
# wird der error-presenter im Fehlerfall aufgerufen?
catchExceptions: ... # (bool) steht im Produktionsmodus standardmäßig auf true
# Name des Fehlermelders
errorPresenter: Error # (string) Standardwert ist 'Nette:Error'
# definiert die Regeln für die Auflösung des Presenter-Namens in eine Klasse
mapping: ...
# werden bei schlechten Links Warnungen erzeugt?
# hat nur im Entwicklermodus Auswirkungen
silentLinks: ... # (bool) ist standardmäßig auf false eingestellt
Da Fehlerpräsenter im Entwicklungsmodus standardmäßig nicht aufgerufen werden und die Fehler von Tracy angezeigt werden,
hilft das Ändern des Wertes catchExceptions
in true
dabei, zu überprüfen, ob die Fehlerpräsenter
während der Entwicklung korrekt funktionieren.
Die Option silentLinks
legt fest, wie sich Nette im Entwicklermodus verhält, wenn die Link-Generierung
fehlschlägt (z. B. weil kein Presenter vorhanden ist usw.). Der Standardwert false
bedeutet, dass Nette
E_USER_WARNING
auslöst. Die Einstellung true
unterdrückt diese Fehlermeldung. In einer
Produktionsumgebung wird immer E_USER_WARNING
aufgerufen. Wir können dieses Verhalten auch beeinflussen, indem wir
die Presenter-Variable $invalidLinkMode setzen.
Das Mapping definiert die Regeln, nach denen der Klassenname aus dem Presenter-Namen abgeleitet wird.
Automatische Registrierung von Präsentatoren
Nette fügt Presenter automatisch als Dienste zum DI-Container hinzu, was ihre Erstellung erheblich beschleunigt. Wie Nette Presenter findet, kann konfiguriert werden:
Anwendung:
# um nach Präsentatoren in der Composer-Klassenkarte zu suchen?
scanComposer: ... # (bool) standardmäßig auf true
# eine Maske, die mit der Klasse und dem Dateinamen übereinstimmen muss
scanFilter: ... # (string) Standardwert ist '*Presenter'.
# in welchen Verzeichnissen soll nach Präsentatoren gesucht werden?
scanDirs: # (string[]|false) Standardwert ist '%appDir%'
- %vendorDir%/mymodule
Die in scanDirs
aufgeführten Verzeichnisse überschreiben nicht den Standardwert %appDir%
, sondern
ergänzen ihn, so dass scanDirs
die beiden Pfade %appDir%
und %vendorDir%/mymodule
enthält. Wenn wir das Standardverzeichnis überschreiben wollen, verwenden wir ein Ausrufezeichen:
application:
scanDirs!:
- %vendorDir%/mymodule
Das Scannen von Verzeichnissen kann durch die Einstellung false ausgeschaltet werden. Es wird nicht empfohlen, das automatische Hinzufügen von Präsentatoren vollständig zu unterdrücken, da sonst die Leistung der Anwendung beeinträchtigt wird.
Latte
Diese Einstellung wirkt sich global auf das Verhalten von Latte in Komponenten und Presentern aus.
Latte:
# zeigt das Latte-Panel in der Tracy Bar für die Hauptvorlage (true) oder für alle Komponenten (all)?
debugger: ... # (true|false|'all') ist standardmäßig true
# erzeugt Vorlagen mit declare(strict_types=1)
strictTypes: ... # (bool) ist standardmäßig false
# Klasse von $this->template
templateClass: App\MyTemplateClass # Standardwert ist Nette\Bridges\ApplicationLatte\DefaultTemplate
Wenn Sie Latte Version 3 verwenden, können Sie neue Erweiterungen mit hinzufügen:
latte:
extensions:
- Latte\Essential\TranslatorExtension
Routing
Grundeinstellungen:
routing:
# zeigt Routing-Panel in Tracy Bar?
debugger: ... # (bool) standardmäßig true
# Router in DI-Container serialisieren?
cache: ... # (bool) Standardwert ist false
Router werden normalerweise in der Klasse RouterFactory definiert. Alternativ
können Router auch in der Konfiguration mit mask: action
Paaren definiert werden, aber diese Methode bietet keine so
große Variationsbreite an Einstellungen:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Konstanten
Erstellen von PHP-Konstanten.
constants:
Foobar: 'baz'
Die Konstante Foobar
wird nach dem Start der Anwendung erstellt.
Konstanten sollten nicht als global verfügbare Variablen dienen. Um Werte an Objekte zu übergeben, verwenden Sie Dependency Injection.
PHP
Sie können PHP-Direktiven setzen. Eine Übersicht über alle Direktiven finden Sie auf php.net.
php:
date.timezone: Europe/Prague