Configuration de l'application

Aperçu des options de configuration de l'application Nette.

Application

application:
	# affiche le panneau "Nette Application" dans Tracy BlueScreen ?
	debugger: ...           # (bool) par défaut à true

	# le présentateur d'erreurs sera-t-il appelé en cas d'erreur ?
	# n'a d'effet qu'en mode développeur
catchExceptions : ...    # (bool) valeur par défaut : true

	# nom du présentateur d'erreur
	errorPresenter: Error   # (string|array) vaut par défaut 'Nette:Error'.

	# définit des alias pour les présentateurs et les événements
	aliases: ...

	# définit les règles pour résoudre le nom du présentateur vers une classe
	mapping: ...

	# les mauvais liens génèrent-ils des avertissements ?
	# n'a d'effet qu'en mode développeur
	silentLinks: ...        # (bool) valeur par défaut: false

Depuis la version 3.2 de nette/application, il est possible de définir une paire de présentateurs d'erreurs :

application:
	errorPresenter:
		4xx: Error4xx   # pour NetteApplicationBadRequestException
		5xx: Error5xx   # pour les autres exceptions

L'option silentLinks détermine comment Nette se comporte en mode développeur lorsque la génération de liens échoue (par exemple, parce qu'il n'y a pas de présentateur, etc). La valeur par défaut false signifie que Nette déclenche E_USER_WARNING. Le réglage sur true supprime ce message d'erreur. Dans un environnement de production, E_USER_WARNING est toujours invoqué. Nous pouvons également influencer ce comportement en définissant la variable du présentateur $invalidLinkMode.

Les alias simplifient le référencement des présentateurs fréquemment utilisés.

Le mappage définit les règles selon lesquelles le nom de la classe est dérivé du nom du présentateur.

Enregistrement automatique des présentateurs

Nette ajoute automatiquement les présentateurs en tant que services au conteneur DI, ce qui accélère considérablement leur création. La manière dont Nette découvre les diffuseurs peut être configurée :

application:
	# rechercher les diffuseurs dans la carte des classes Composer ?
	scanComposer: ...      # (bool) valeur par défaut: true

	# un masque qui doit correspondre à la classe et au nom du fichier
	scanFilter: ...        # (string) Valeur par défaut: '*Presenter'.

	# dans quels répertoires chercher les diffuseurs ?
	scanDirs:              # (string[]|false) Valeur par défaut: '%appDir%'.
		- %vendorDir%/mymodule

Les répertoires listés dans scanDirs ne remplacent pas la valeur par défaut %appDir%, mais la complètent, ainsi scanDirs contiendra les chemins %appDir% et %vendorDir%/mymodule. Si nous voulons remplacer le répertoire par défaut, nous utilisons le point d'exclamation:

application:
	scanDirs!:
		- %vendorDir%/mymodule

L'analyse des répertoires peut être désactivée en définissant false. Nous ne recommandons pas de supprimer complètement l'ajout automatique de diffuseurs, sinon les performances de l'application seront réduites.

Latte

Ce paramètre affecte globalement le comportement de Latte dans les composants et les présentateurs.

latte:
	# affiche le panneau Latte dans la barre Tracy pour le modèle principal (true) ou pour tous les composants (all) ?
	debugger: ...        # (true|false|'all') vaut true par défaut

	# génère des modèles avec declare(strict_types=1)
	strictTypes: ...     # (bool) vaut false par défaut

	# active le [mode strict de l'analyseur |latte:develop#strict mode]
	strictParsing: ...   # (bool) la valeur par défaut est false

	# permet de [vérifier le code généré |latte:develop#Checking Generated Code]
	phpLinter: ...       # (string) la valeur par défaut est null

	# définit la locale
	locale: cs_CZ        # (string) la valeur par défaut est null

	# classe de $this->template
	templateClass: App\MyTemplateClass # Valeur par défaut: Nette\Bridges\ApplicationLatte\DefaultTemplate

Si vous utilisez la version 3 de Latte, vous pouvez ajouter une nouvelle extension en utilisant :

latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)

Routage

Paramètres de base :

routage:
	# affiche le panneau de routage dans Tracy Bar ?
	debugger: ...   # (bool) par défaut à true

	# pour sérialiser le routeur dans le conteneur DI ?
	cache: ...      # (bool) par défaut à false

Le routeur est généralement défini dans la classe RouterFactory. Il est également possible de définir les routeurs dans la configuration en utilisant les paires mask: action, mais cette méthode n'offre pas une aussi grande variation des paramètres :

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

Constantes

Création de constantes PHP.

constants:
	Foobar: 'baz'

La constante Foobar sera créée après le démarrage.

Les constantes ne doivent pas servir de variables disponibles dans le monde entier. Pour transmettre des valeurs aux objets, utilisez l'injection de dépendances.

PHP

Vous pouvez définir des directives PHP. Un aperçu de toutes les directives peut être trouvé sur php.net.

php:
	date.timezone: Europe/Prague

Services DI

Ces services sont ajoutés au conteneur DI :

Nom Type Description
application.application Nette\Application\Application Lanceur d'applications complet
application.linkGenerator Nette\Application\LinkGenerator LinkGenerator
application.presenterFactory Nette\Application\PresenterFactory presenter factory
application.### Nette\Application\UI\Presenter présentateurs individuels
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory usine pour Latte\Engine
latte.templateFactory Nette\Application\UI\TemplateFactory usine pour $this->template
version: 4.0