Utilisation des filtres avec Symfony

Voila encore une fonctionnalité peu connu qui me fait aimer ce framework.

Dans Symfony, quand le système reçoit une requête il exécute une série de filtre permettant un découpage logique efficace des actions à traiter. Ce qui est intéressant, c’est que l’on peut facilement intégrer ses propres filtres afin de modifier des comportements du framework.

Par exemple, si vous voulez logguer chaque accès sur toutes les pages de votre application (c’est un exemple … ok ?), rien de plus facile.

C’est une simple classe à mettre sous le dossier lib par exemple.

< ?php

class accesslogFilter extends sfFilter

{

  public function execute($filterChain)
  {
    if ($this->isFirstCall())
        // on ne logue que le premier appel à une action
    {

      /*
      ici, on a accès à tous les objets de symfony
      $request = $this->getContext()->getRequest();
      etc ... permettant de tracer la requête,
      de savoir quel module on utilise ...
      */

      /*
      à vous de créer votre log (j'vais pas tout faire)
      */
    }
    $filterChain->execute();
  }
}

Il faut ensuite simplement activer votre filtre en ajoutant au fichier apps/myapps/config/filters.yml les lignes suivantes :

accesslog:
  class: accesslogFilter

Juste après le filtre de sécurité(security).

Simple non ?

Publicités

4 réflexions au sujet de « Utilisation des filtres avec Symfony »

  1. olivier

    En fait ces deux concepts n’ont rien à voir. Un filtre permet de faire un traitement avant ou après l’exécution du contrôleur, c’est pour moi un élément constituant du framework. Un valideur sert à traiter des données issues de formulaire, c’est pour moi assez indépendant du framework.

    A ce propos, le système de gestion de formulaire de SF 1.1 sera complètement indépendant du framework et pourra être utilisé dans d’autres concepts.

    Répondre
  2. Hugo

    Okay merci pour ces précisions. Je débute avec Symfony 1.0.11 depuis quelques semaines. Je n’avais pas trop capté les deux concepts.

    Oui j’ai vu sur le site de Fabien Potencier un billet au sujet de SF 1.1 et le framework des formulaires qui est devenu complètement différent. J’attends d’être plus à l’aise avec SF 1.0 avant de passer sur 1.1 (qui visiblement n’est pas encore tout à fait stable).

    Merci.

    Hugo.

    Répondre
  3. Ping : Laurent Deséchalliers : “Tech”Blog » [Veille>Dev] Filtre en Synfony

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s