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

Symfony PHP Discussion :

xdebug ou xhprof ou autre profiler


Sujet :

Symfony PHP

  1. #1
    Membre averti Avatar de Ben_74
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Par défaut xdebug ou xhprof ou autre profiler
    Bonsoir, je débute dans l'univers symfony

    J'ai essayé l'autre jour d'obtenir un debug_backtrace() dans un controlleur : grossière idée, ceci dépasse la limite de 300Mo
    puis, j'ai tenté de faire un print_r sur un objet doctrine .. bis repetita

    Bref j'ai essayé xdebug, ce dernier plante la génération de la barre symfony profiler .. les fichiers d'output font généralement +de 200Mo
    Puis j'ai essayé xhprof, au moins les données font moins de 10Mo mais je ne suis jamais parvenu à en faire fonctionner l'interface graphique ..

    Ma question finale : quel profiler est-il adapté à l'usage de symfony ? existe t-il l'un d'entre eux qui aurait la capacité de créer de jolis "callgraphs" ?

    Merci pour vos lumières

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    en PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Doctrine\Common\Util\Debug::dump($var);
    dans Twig

    Semble également trés intéressant (mais je n'ai pas testé)
    http://paris2014.live.symfony.com/speakers#session-1139
    https://github.com/nicolas-grekas/Patchwork-Dumper

  3. #3
    Membre averti Avatar de Ben_74
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Par défaut
    Intéressant, j'essaie demain, en même temps il n'y a pas que les objets doctrine qui me tracassent ..
    cette fonction get() assez mystique, qui te retourne un objet, qui semble être définie dans le controller, implementée d'une interface (containerinterface), définie dans container.php, puis surchargée dans containerbuilder, le $this->container dit être une instance de AppDevDebugProjectContainer ..
    J'ai placé un petit traceur .. jamais il ne passe ni par container ni containerbuilder et je me demande où .. je cherche le moyen d'obtenir le contenu de la méthode par une réflexionclass .. sans succès, bref encore une petite boite noire

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    le $this->container dit être une instance de AppDevDebugProjectContainer ..
    Oui tu la trouveras dans app/cache/dev/appDevDebugProjectContainer.
    Qu'il s'agisse de cette classe ou de la classe container n'a pas d'importance, il s'agit surtout que tu puisse appeler leur méthode "get", "getParameter"

    http://api.symfony.com/2.0/Symfony/C...Interface.html
    (à noter que les méthode "set" ne sont pas disponible sur le AppDevDebugProjectContainer)


    jamais il ne passe ni par container ni containerbuilder
    en environnement de prod, le containerbuilder ne doit être appelé qu'à la premiere requete (et encore)
    en environnement de dev tu peux tester en faisant une modif sur un des fichiers de config (le container devrait alors être recalculé)

    cette fonction get() assez mystique, qui te retourne un objet
    Le controller de base propose des méthodes usuels, mais ce ne sont généralement que des raccourcis vers des services du container
    https://github.com/symfony/symfony/b...Controller.php

  5. #5
    Membre averti Avatar de Ben_74
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Par défaut
    Ok, merci je vois mieux maintenant, mais j'avoue que si un debug_backtrace ou un print_r ne m'aurais pas explosé la limite mémoire, je pense que la compréhension du framework me serait plus aisée & plus rapide
    Ce petit patchwork debug est pas mal .. rapide, mais juste superficiel

    J'ai trouvé, au final que bootstrap.php.cache appellait get() dans
    vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php, pour créer les services

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2011, 12h21
  2. [OL-2003] Exécution de Outlook avec un autre profil
    Par Safaritn dans le forum Outlook
    Réponses: 3
    Dernier message: 30/04/2009, 13h40
  3. Réponses: 14
    Dernier message: 27/01/2008, 11h57
  4. [gprof]Utilisation sans Unix/Linux sinon un autre profiler
    Par homeostasie dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 20/09/2006, 13h04

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