Maxy.fr

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 */
	}
}

 

Catégories : PHP, Symfony2

Par Guillaume le 02/02/2014 à 02:43

Partager l'article :

Articles similaires

Trier un tableau multidimensionnel en PHP

Il arrive parfois que l'on doivent trier un tableau contenant d'autres tableau suivant des valeurs pas directement accessibles. En soit on se retrouve bloqué car les fonctions de tries classique (asort(), ksort() ...) ne permettent pas de trier comme on le souhaite notre tableau. Sachez...

Enregistrer un tableau PHP dans un fichier

Il est parfois utile d'enregistrer dans un fichier des données en provenance d'un code PHP. Sachez qu'il est plutôt simple d'enregistrer un tableau de données dans un fichier en utilisant la fonction serialize().   Voici le code permettant d'enregistrer les données...

Utiliser la programmation pour résoudre un problème mathématiques

Vous avez sûrement entendu parlé de cet exercice de mathématiques qui fait tant parler de lui depuis quelques jours sur internet. Cet exercice a priori simple qu'un professeur Vietnamien a donné à faire à ses élèves d'une classe...