Symfony2 : Exécuter un script php au chargement des pages
Il est souvent utile suivant les besoins d'executer un script PHP lors du chargement de n'importe quelle page d'un site. Par exemple pour l'enregistrement de statistiques.
Il s'avère que ceci est plutôt simple à réaliser en créant et en configurant un service comme il le faut.
Créez donc dans le bundle de votre choix un service avec une méthode contenant le script à éxecuter.
Il vous faut maintenant configurer votre service en y ajoutant les tags qui permettront l'execution automatique de votre code.
Exemple de configuration : Test/StatistiquesBundle/Ressources/Config/services.yml
parameters: Statistiques.class: Test\StatistiquesBundle\Statistiques services: Statistiques.example: class: %Statistiques.class% arguments: [@request, @doctrine.orm.entity_manager] scope: request tags: - { name: kernel.event_listener, event: kernel.controller, method: onLoad }
L'important ici est la déclaration des tags. Comme défini ci-dessus cela permettra l'execution de la fonction onLoad (peut importe le nom) lors du déclenchement de l'évenement "kernel.controller". Votre script se lancera donc juste avant que le controlleur ne s'exécute.
Exemple de code pour votre class Statistiques : Test/StatistiquesBundle/Statistiques.php
<?php namespace Test\StatistiquesBundle; class Statistiques { protected $request; protected $em; public function __construct($request, $em) { $this->request = $request; $this->em = $em; } public function onLoad() { /* Votre code ici */ } }
Par Guillaume le 02/02/2014 à 02:43