Le fichier de configuration filters.yml
décrit la chaine de filtre à
exécuter pour chaque requête.
Le fichier principal de configuration filters.yml
pour une application peut être trouvé dans
le répertoire apps/APP_NAME/config/
.
Comme indiqué dans l'introduction, le fichier filters.yml
bénéficie du
mécanisme de configuration en cascade
et peut inclure des constantes.
Le fichier de configuration filters.yml
contient une liste de définitions de
filtre nommé :
FILTER_1: # Définition du filtre 1 FILTER_2: # Définition du filtre 2 # ...
Lorsque le contrôleur initialise la chaîne de filtre pour une requête, il lit le
fichier filters.yml
et enregistre les filtres en recherchant le nom de la classe du
filtre (class
) et les paramètres (param
) utilisés pour configurer l'objet
du filtre :
FILTER_NAME: class: CLASS_NAME param: { ARRAY OF PARAMETERS }
Les filtres sont exécutés dans le même ordre où elles apparaissent dans le fichier de configuration. Comme symfony exécute les filtres comme une chaîne, le premier filtre enregistré est exécuté en premier et en dernier.
Le nom de class
étend la classe de base sfFilter
.
Si la classe filtre ne peut pas être chargées automatiquement, un chemin file
peut être défini
et sera automatiquement inclus avant la création de l'objet du filtre :
FACTORY_NAME: class: CLASS_NAME file: ABSOLUTE_PATH_TO_FILE
Lorsque vous surchargez le fichier filters.yml
, vous devez conserver tous les filtres
du fichier de configuration hérité :
rendering: ~ security: ~ cache: ~ execution: ~
Pour supprimer un filtre, vous devez le désactiver en réglant la clé enabled
sur
false
:
FACTORY_NAME: enabled: false
Il y a deux noms spéciaux pour les filtres : rendering
et execution
. Ils sont
obligatoires et sont identifiés par le paramètre type
. Le filtre rendering
doit toujours être identifié comme premier filtre et le filtre execution
devrait être le dernier :
rendering: class: sfRenderingFilter param: type: rendering # ... execution: class: sfExecutionFilter param: type: execution
note
Le fichier de configuration filters.yml
est mis en cache dans un fichier PHP, le
processus est automatiquement géré par la classe
sfFilterConfigHandler
.
Filters
rendering
Configuration par défaut :
rendering: class: sfRenderingFilter param: type: rendering
Le filtre rendering
est responsable de la sortie de la réponse au
navigateur. Comme il est doit être le premier filtre déclaré, il est aussi le dernier
à avoir une chance de gérer la requête.
security
Configuration par défaut :
security: class: sfBasicSecurityFilter param: type: security
Le filtre security
vérifie la sécurité en appelant la méthode getCredential()
de l'action. Une fois que le credential a été acquis, il vérifie que
l'utilisateur a le même credential en appelant la méthode hasCredential()
de
l'objet utilisateur.
Le filtre security
doit avoir un type security
.
Une configuration plus fine du filtre de sécurité est faite via
le fichier de configuration security.yml
.
tip
Si l'action demandée n'est pas configuré comme sécurisée dans security.yml
, le
filtre de sécurité ne sera pas exécuté.
cache
Configuration par défaut :
cache: class: sfCacheFilter param: condition: %SF_CACHE%
Le filtre cache
gère la mise en cache pour les actions et les pages. Il est également
responsable de l'ajout des entêtes cache HTTP nécessaires à la réponse
(Last-Modified
, ETag
, Cache-Control
, Expires
, ...).
execution
Configuration par défaut :
execution: class: sfExecutionFilter param: type: execution
Le filtre execution
est au centre de la chaîne des filtres et fait tout l'action
et l'exécution de vue.
Le filtre execution
doit être le filtre déclaré en dernier.
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.