Autres fichiers de configuration
Ce chapitre décrit d'autres fichiers de configuration de symfony, qui ont rarement besoin d'être changée.
~autoload.yml~
La configuration autoload.yml détermine quels répertoires doivent être chargés automatiquement par symfony. Chaque répertoire est scanné pour les classes PHP et les interfaces.
Comme indiqué dans l'introduction, le fichier autoload.yml bénéficie du mécanisme de configuration en cascade et peut inclure des constantes.
Le fichier de configuration
autoload.ymlest mis en cache dans un fichier PHP, le processus est automatiquement géré par la classe ~sfFilterConfigHandler~.
La configuration par défaut est très bien pour la plupart des projets :
---
autoload:
# project
project:
name: project
path: %SF_LIB_DIR%
recursive: true
exclude: [model, symfony]
project_model:
name: project model
path: %SF_LIB_DIR%/model
recursive: true
# application
application:
name: application
path: %SF_APP_LIB_DIR%
recursive: true
modules:
name: module
path: %SF_APP_DIR%/modules/*/lib
prefix: 1
recursive: true
Chaque configuration possède un nom et doit être mis sous une clé avec ce nom. Il permet pour la configuration par défaut d'être redéfinie.
Comme vous pouvez le voir, le répertoire
lib/vendor/symfony/est exclus par défaut, car symfony utilise un mécanisme d'auto-chargement différents pour les classes du noyau.
Plusieurs clés peuvent être utilisées pour personnaliser le comportement d'auto-chargement :
name: Une descriptionpath: Le chemin d'auto-chargementrecursive: Pour chercher les classes PHP dans les sous-répertoiresexclude: Un tableau de nom de répertoires à exclure de la rechercheprefix: Mettre àtruesi les classes trouvées dans le chemin ne doivent pas être chargées automatiquement pour un module donné (falsepar défaut)files: Un tableau de fichier à analyser de façon explicite pour les classes PHPext: L'extension des classes php (.phppar défaut)
Par exemple, si vous incorporez une grande bibliothèque au sein de votre projet sous le répertoire lib/, et si elle prend déjà en charge le chargement automatique, vous pouvez l'exclure du système par défaut d'auto-chargement de symfony pour bénéficier d'un gain de performances en modifiant la configuration de chargement automatique de project :
---
autoload:
project:
name: project
path: %SF_LIB_DIR%
recursive: true
exclude: [model, symfony, vendor/large_lib]
~config_handlers.yml~
Le fichier de configuration config_handlers.yml décrit les classes du gestionnaire de configuration utilisées pour analyser et interpréter tous les autres fichiers de configuration YAML. Voici la configuration par défaut utilisée pour charger le fichier de configuration settings.yml :
---
config/settings.yml:
class: sfDefineEnvironmentConfigHandler
param:
prefix: sf_
Chaque fichier de configuration est défini par une classe (entrée class) et peut être personnalisés en définissant certains paramètres dans la section param.
Le fichier par défaut config_handlers.yml définit les classes de l'analyseur comme suit :
| Fichier de configuration | Classe du gestionnaire de config |
|---|---|
autoload.yml |
sfAutoloadConfigHandler |
databases.yml |
sfDatabaseConfigHandler |
settings.yml |
sfDefineEnvironmentConfigHandler |
app.yml |
sfDefineEnvironmentConfigHandler |
factories.yml |
sfFactoryConfigHandler |
core_compile.yml |
sfCompileConfigHandler |
filters.yml |
sfFilterConfigHandler |
routing.yml |
sfRoutingConfigHandler |
generator.yml |
sfGeneratorConfigHandler |
view.yml |
sfViewConfigHandler |
security.yml |
sfSecurityConfigHandler |
cache.yml |
sfCacheConfigHandler |
module.yml |
sfDefineEnvironmentConfigHandler |
~core_compile.yml~
Le fichier de configuration core_compile.yml décrit les fichiers PHP qui sont fusionnés dans un grand dossier dans l'environnement prod, afin accélérer le temps qu'il faut pour que symfony charge. Par défaut, les classes principales du noyau symfony sont définies dans ce fichier de configuration. Si votre application se fonde sur certaines classes qui doivent être chargés pour chaque requête, vous pouvez créer un fichier de configuration core_compile.yml dans votre projet ou votre application et les ajouter. Voici un extrait de la configuration par défaut :
---
- %SF_SYMFONY_LIB_DIR%/autoload/sfAutoload.class.php:
- %SF_SYMFONY_LIB_DIR%/action/sfComponent.class.php:
- %SF_SYMFONY_LIB_DIR%/action/sfAction.class.php:
- %SF_SYMFONY_LIB_DIR%/action/sfActions.class.php:
Comme indiqué dans l'introduction, le fichier core_compile.yml bénéficie du mécanisme de configuration en cascade et peut inclure des constantes.
Le fichier de configuration
core_compile.ymlest mis en cache dans un fichier PHP, le processus est automatiquement géré par la classe ~sfFilterConfigHandler~.
~module.yml~
Le fichier de configuration module.yml permet la configuration d'un module. Ce fichier de configuration est rarement utilisé et ne peut contenir que les entrées définies ci-dessous.
Le fichier module.yml doit être stocké dans le sous-répertoire config/ d'un module pour être chargé par symfony. Le code suivant montre un contenu typique de module.yml avec les valeurs par défaut pour tous les paramètres :
---
all:
enabled: true
view_class: sfPHP
partial_view_class: sf
Si le paramètre enabled est défini à false, toutes les actions d'un module sont désactivés. Ils sont redirigés vers l'action ~module_disabled_module~/~module_disabled_action~ (tel que défini dans settings.yml).
Le paramètre view_class définit la classe de la vue utilisée par toutes les actions du module (sans le suffixe View). Elle doit hériter de sfView.
Le paramètre partial_view_class définit la classe de la vue utilisée par les partials de ce module (sans le suffixe PartialView). Elle doit hériter de sfPartialView.
インデックス
Document Index
関連ページリスト
Related Pages
Introduction
Le format YAML
Principes des fichiers de configuration
Le fichier de configuration settings.yml
Le fichier de configuration factories.yml
Le fichier de configuration generator.yml
Le fichier de configuration databases.yml
Le fichier de configuration security.yml
Le fichier de configuration cache.yml
Le fichier de configuration routing.yml
Le fichier de configuration app.yml
Le fichier de configuration filters.yml
Le fichier de configuration view.yml
Autres fichiers de configuration
Evénements
Les tâches
Annexe A - Licence
日本語ドキュメント
Japanese Documents
2011/01/18 Chapter 17 - Extending Symfony
2011/01/18 The generator.yml Configuration File
2011/01/18 Les tâches
2011/01/18 Emails
2010/11/26 blogチュートリアル(8) ビューの作成
