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 error-presenter im Fehlerfall aufgerufen?
# hat nur im Entwicklermodus Auswirkungen
catchExceptions: ... # (bool) ist standardmäßig true
# Name des Fehlermelders
errorPresenter: Error # (string|array) Standardwert ist 'Nette:Error'
# definiert Aliase für Moderatoren und Veranstaltungen
aliases: ...
# 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
Ab nette/application
Version 3.2 ist es möglich, ein Paar von Fehlerpräsentern zu definieren:
application:
errorPresenter:
4xx: Error4xx # für Nette\Application\BadRequestException
5xx: Error5xx # für andere Ausnahmen
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.
Aliasnamen vereinfachen das Aufsuchen häufig verwendeter Moderatoren.
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
# aktiviert den [strengen Parser-Modus |latte:develop#strict mode]
strictParsing: ... # (bool) Standard ist false
# aktiviert die [Überprüfung von generiertem Code |latte:develop#Checking Generated Code]
phpLinter: ... # (string) Voreinstellung ist null
# legt das Gebietsschema fest
locale: cs_CZ # (string) Voreinstellung ist null
# 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(@Nette\Localization\Translator)
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
DI-Dienste
Diese Dienste werden dem DI-Container hinzugefügt:
Name | Typ | Beschreibung |
---|---|---|
application.application |
Nette\Application\Application | Vollständiger Anwendungsstarter |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | Presenter-Fabrik |
application.### |
Nette\Application\UI\Presenter | einzelne Referenten |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | Fabrik für Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | Fabrik für $this->template |