Configuration des applications
Aperçu des options de configuration pour les applications Nette.
Application
application:
# afficher le panneau "Nette Application" dans Tracy BlueScreen ?
debugger: ... # (bool) par défaut true
# l'error-presenter sera-t-il appelé en cas d'erreur ?
# n'a d'effet qu'en mode développement
catchExceptions: ... # (bool) par défaut true
# nom de l'error-presenter
errorPresenter: Error # (string|array) par défaut 'Nette:Error'
# définit les alias pour les presenters et les actions
aliases: ...
# définit les règles pour traduire le nom du presenter en classe
mapping: ...
# les liens invalides ne génèrent pas d'avertissement ?
# n'a d'effet qu'en mode développement
silentLinks: ... # (bool) par défaut false
Depuis la version 3.2 de nette/application
, il est possible de définir une paire d'error-presenters :
application:
errorPresenter:
4xx: Error4xx # pour l'exception Nette\Application\BadRequestException
5xx: Error5xx # pour les autres exceptions
L'option silentLinks
détermine comment Nette se comporte en mode développement lorsque la génération d'un lien
échoue (par exemple, parce que le presenter n'existe pas, etc.). La valeur par défaut false
signifie que Nette
lèvera une erreur E_USER_WARNING
. La définir sur true
supprimera ce message d'erreur. En environnement
de production, E_USER_WARNING
est toujours levé. Ce comportement peut également être influencé en définissant la
variable du presenter $invalidLinkMode.
Les alias simplifient la création de liens vers les presenters fréquemment utilisés.
Le mapping définit les règles selon lesquelles le nom de la classe est dérivé du nom du presenter.
Enregistrement automatique des presenters
Nette ajoute automatiquement les presenters en tant que services au conteneur DI, ce qui accélère considérablement leur création. La manière dont Nette trouve les presenters peut être configurée :
application:
# rechercher les presenters dans la class map de Composer ?
scanComposer: ... # (bool) par défaut true
# masque auquel le nom de la classe et du fichier doit correspondre
scanFilter: ... # (string) par défaut '*Presenter'
# dans quels répertoires rechercher les presenters ?
scanDirs: # (string[]|false) par défaut '%appDir%'
- %vendorDir%/mymodule
Les répertoires spécifiés dans scanDirs
ne remplacent pas la valeur par défaut %appDir%
, mais la
complètent, donc scanDirs
contiendra les deux chemins %appDir%
et %vendorDir%/mymodule
. Si
nous voulions omettre le répertoire par défaut, nous utiliserions un point d'exclamation, qui écrase la
valeur :
application:
scanDirs!:
- %vendorDir%/mymodule
L'analyse des répertoires peut être désactivée en spécifiant la valeur false
. Nous ne recommandons pas de
supprimer complètement l'ajout automatique des presenters, car cela réduirait les performances de l'application.
Templates Latte
Ce paramètre permet d'influencer globalement le comportement de Latte dans les composants et les presenters.
latte:
# afficher le panneau Latte dans la barre Tracy pour le template principal (true) ou tous les composants (all) ?
debugger: ... # (true|false|'all') par défaut true
# génère les templates avec l'en-tête declare(strict_types=1)
strictTypes: ... # (bool) par défaut false
# active le mode [parseur strict |latte:develop#strict-mode]
strictParsing: ... # (bool) par défaut false
# active le [contrôle du code généré |latte:develop#checking-generated-code]
phpLinter: ... # (string) par défaut null
# définit la locale
locale: cs_CZ # (string) par défaut null
# classe de l'objet $this->template
templateClass: App\MyTemplateClass # par défaut Nette\Bridges\ApplicationLatte\DefaultTemplate
Si vous utilisez Latte version 3, vous pouvez ajouter de nouvelles extensions en utilisant :
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Si vous utilisez Latte version 2, vous pouvez enregistrer de nouvelles balises soit en spécifiant le nom de la classe, soit
par référence à un service. Par défaut, la méthode install()
est appelée, mais cela peut être modifié en
spécifiant le nom d'une autre méthode :
latte:
# enregistrement des balises Latte personnalisées
macros:
- App\MyLatteMacros::register # méthode statique, nom de classe ou callable
- @App\MyLatteMacrosFactory # service avec la méthode install()
- @App\MyLatteMacrosFactory::register # service avec la méthode register()
services:
- App\MyLatteMacrosFactory
Routage
Paramètres de base :
routing:
# afficher le panneau de routage dans la barre Tracy ?
debugger: ... # (bool) par défaut true
# sérialise le routeur dans le conteneur DI
cache: ... # (bool) par défaut false
Le routage est généralement défini dans la classe RouterFactory. Alternativement, les routes peuvent
également être définies dans la configuration en utilisant des paires masque: action
, mais cette méthode n'offre
pas une aussi grande variété de paramètres :
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Constantes
Création de constantes PHP.
constants:
Foobar: 'baz'
Après le démarrage de l'application, la constante Foobar
sera créée.
Les constantes ne doivent pas servir de variables globales. Pour transmettre des valeurs aux objets, utilisez l'injection de dépendances.
PHP
Configuration des directives PHP. Un aperçu de toutes les directives se trouve 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 de toute l'application |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | factory de presenters |
application.### |
Nette\Application\UI\Presenter | presenters individuels |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | factory de l'objet Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | factory pour $this->template |