Hook au niveau applicatif

Pour ajouter une méthode avant toutes les actions d’un controlleur, rien de plus facile.
La méthode sfActions::preExecute() est là pour cela.

Pour ajouter un hook aux actions de TOUS les controleurs, cela est plus difficile.

1/Overrider sfApplicationConfiguration::configure() ou ::initialize()

class frontendConfiguration extends sfApplicationConfiguration
{
  /**
   * override AVANT self::initConfiguration (lecture du fichier app/<application>/config/settings.yml, etc.)
   */
  public function configure()  {  }

  /**
   * override APRES
   */
  public function initialize()
  {
  	sfConfig::set('sf_web_debug', true);
  }

Problèmes courants :

Рcomment r̩cup̩rer la session (objet sfUser) ?

2/ Les filtres

http://www.symfony-project.org/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer#chapter_06_sub_the_filter_chain

Récupérer la session : $this->getContext()->getUser()

Ajouter une variable disponible dans tous les templates (vues) (exemple : $sf_user) :

http://www.symfony-project.org/more-with-symfony/1_4/en/10-Symfony-Internals#chapter_10_sub_taking_advantage_of_the_template_filter_parameters_event

Ce contenu a été publié dans développement, php. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *