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 |