IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Profiler les méthodes de mes controleurs


Sujet :

Zend Framework PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2008
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2008
    Messages : 517
    Points : 308
    Points
    308
    Par défaut Profiler les méthodes de mes controleurs
    Bonjour,

    Je souhaiterais savoir si il était possible de mesurer le temps d'exécution de chaque méthode (et action) public et private de mes contrôleurs.

    A chaque fois qu'une méthode est exécuter je voudrais "loger" son temps d'exécution :

    HomeController::getDocument: 0.0799 ms

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Avec un peu de retard, mais si ça peu servir

    Perso je ferais un truc dans ce genre:
    1 - Je créerais une classe abstraite héritant de Zend_Controller_Action comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    abstract Class Votrelibrairie_Controller_ControllerAbstract extends Zend_Controller_Action
    {
    	protected $_timedeb = null;
     
    	public function preDispatch()
    	{
    		$this->_timedeb = microtime(true); 
    	}
     
    	public function postDispatch()
    	{
    	     $module    = Zend_Controller_Front::getInstance()->getRequest()->getModuleName();
    	     $controller = Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
    	     $action     = Zend_Controller_Front::getInstance()->getRequest()->getActionName();
     
    		// Mettre en place un log et le récupérer dans $log;
    		$log->info($module . ' - ' . $controller . ' - ' . $action . ' => temps = ' . (microtime(true) - $this->_timedeb ));
    	}
    }
    2 - Mes Controllers hériteraient de Votrelibrairie_Controller_ControllerAbstract et non de Zend_Controller_Action

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2008
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2008
    Messages : 517
    Points : 308
    Points
    308
    Par défaut
    Merci pour la réponse (j'avais oublié ce topic)

    Le problème avec preDispatch et postDispatch c'est que ça sera exécuté uniquement lors des appels des actions non ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Oui, en effet, je n'avais pas vu la partie
    .. private de mes contrôleurs
    .
    On peut imaginer un truc comme ça:
    Vous pouvez remplacer $_timedeb par un tableau.
    A chaque début de méthode appelé une méthode setDebutTime($nomMethode) qui remplira $_timedeb[$nomMethode] et en fin de méthode une autre méthode comme logTimeMethode($nomMethode) qui fera un log comme celui du postDispatch.
    J'espère que je ne suis pas trop confus.
    A part ce genre de rustine, je sèche.

Discussions similaires

  1. Serialiser les méthodes de mes objets métiers
    Par rastamath69 dans le forum Windows Communication Foundation
    Réponses: 4
    Dernier message: 19/11/2010, 12h00
  2. [tptp] Profiler les méthode java
    Par felix79 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 17/11/2008, 15h45
  3. Utiliser les méthodes d'un autre controleur
    Par sebastyen dans le forum MVC
    Réponses: 3
    Dernier message: 26/10/2008, 10h27
  4. Raffraîchir les méthodes de mes librairies
    Par Giovanny Temgoua dans le forum NetBeans
    Réponses: 10
    Dernier message: 03/09/2007, 16h57
  5. [EJB2.1 Entity] enlever de ma facade distante les méthodes addXX/getXX.. de mes entity beans locales
    Par cyrilforever dans le forum Java EE
    Réponses: 9
    Dernier message: 04/01/2007, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo