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
Version: 4.0