plxDebugToolBar, l'outil du développeur

amplurimediaamplurimedia Member
décembre 2011 modifié dans Plugins
Bonjour,

ci-joint un petit d'outil d'aide au développeurs que j'ai converti en petit plugin.

Accessible en local, pour tester sur une ip distante il faudra éditer la classe (très légèrement): je ferai une nouvelle version pour qu'on puis l'activer via un panel.

Donne:
$TRAC, $POST, $GET, $SERVER, $SESSION, $COOKIE et $REQUEST

Affichage propre.

Développeur de cette classe d'outils: Stephane Bouvry.

Lien de dl: http://www.amplurimedia.net/projects/plugins/plxDebugToolBar.rar

Bonnes fêtes à tous,

edit: correction de l'url, autant pour moi

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    le lien de téléchargement n'est plus valide

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Jerry WhamJerry Wham Member
    décembre 2011 modifié
    Excellent plugin. A la place du hook maison, j'aurais plutôt utilisé
    $this->addHook('AdminTopEndHead', 'addplxDebugToolBar');
    $this->addHook('ThemeEndBody', 'addplxDebugToolBar');
    

    Merci pour cet outil bien pratique.

    PS : Pour afficher le contenu d'un tableau, par exemple, utilisez la méthode trac :
    Outils_Debug::trac($mavariable);
    
  • amplurimediaamplurimedia Member
    janvier 2012 modifié
    Bonsoir, je corrige ça dès que j'ai un petit bout de temps libre :)
    Un tel compliment fait plaisir :D

    Par contre, j'ai bien compris ton idée pour ré utiliser la méthode trac, cependant j'arrive pas à avoir un rendu visuel correct, donc si quelqu'un a un peu de temps, j'aime apprendre !

    edit: petite maj (mon hook maison il vient de la doc :p)
  • Je viens de remettre au goût du jour ce petit plugin qui mérite qu'on s'y intéresse. Je m'adresse surtout aux développeurs.
    La classe d'origine est tout simplement géniale. Je l'ai un peu améliorée en ajoutant des couleurs et en modifiant quelque peu la css.

    Elle permet d'afficher le contenu des variables globales ($POST, $GET, $SERVER, $SESSION, $COOKIE et $REQUEST) ou de variables que l'on aura choisies (elle apparaît dans TRAC en utilisant la méthode trac).

    On peut également afficher les valeurs que prend une variable dans une boucle en utilisant la méthode flow().

    J'ai ajouté deux raccourcis à ces méthodes :
    * d() pour Debug::trac(),
    * f() pour Debug::flow().

    Un exemple d'utilisation. Prenons par exemple la méthode getInstance() de la classe plxGlob :
    public static function getInstance($dir,$rep=false,$onlyfilename=true,$type=''){
    		$basename = str_replace(PLX_ROOT, '', $dir);
    		if (!isset(self::$instance[$basename]))
    			self::$instance[$basename] = new plxGlob($dir,$rep,$onlyfilename,$type);
    		return self::$instance[$basename];
    	}
    
    Je veux connaître la valeur de $basename. Je ferai alors :
    public static function getInstance($dir,$rep=false,$onlyfilename=true,$type=''){
    		$basename = str_replace(PLX_ROOT, '', $dir);
         d($basename,'$basename');
    		if (!isset(self::$instance[$basename]))
    			self::$instance[$basename] = new plxGlob($dir,$rep,$onlyfilename,$type);
    		return self::$instance[$basename];
    	}
    

    Si je prends la méthode initCache() :
    private function initCache($type='') {
    
    		if(is_dir($this->dir)) {
    			# On ouvre le repertoire
    			if($dh = opendir($this->dir)) {
    				# Récupération du dirname
    				if($this->onlyfilename) # On recupere uniquement le nom du fichier
    					$dirname = '';
    				else # On concatene egalement le nom du repertoire
    					$dirname = $this->dir;
    				# Pour chaque entree du repertoire
    				while(false !== ($file = readdir($dh))) {
    					if($file[0]!='.') {
    						$dir = is_dir($this->dir.'/'.$file);
    						if($this->rep AND $dir) {
    							$this->aFiles[] = $dirname.$file;
    						}
    						elseif(!$this->rep AND !$dir) {
    							if($type=='arts') {
    								$index = str_replace('_','',substr($file, 0,strpos($file,'.')));
    								$this->aFiles[$index] = $file;
    							} else {
    								$this->aFiles[] = $file;
    							}
    						}
    					}
    				}
    				# On ferme la ressource sur le repertoire
    				closedir($dh);
    			}
    		}
    	}
    
    Je voudrais savoir les valeur que prend $file. Je ferai alors :
    private function initCache($type='') {
    
    		if(is_dir($this->dir)) {
    			# On ouvre le repertoire
    			if($dh = opendir($this->dir)) {
    				# Récupération du dirname
    				if($this->onlyfilename) # On recupere uniquement le nom du fichier
    					$dirname = '';
    				else # On concatene egalement le nom du repertoire
    					$dirname = $this->dir;
    				# Pour chaque entree du repertoire
    				while(false !== ($file = readdir($dh))) {
       f($file);
    					if($file[0]!='.') {
    						$dir = is_dir($this->dir.'/'.$file);
    						if($this->rep AND $dir) {
    							$this->aFiles[] = $dirname.$file;
    						}
    						elseif(!$this->rep AND !$dir) {
    							if($type=='arts') {
    								$index = str_replace('_','',substr($file, 0,strpos($file,'.')));
    								$this->aFiles[$index] = $file;
    							} else {
    								$this->aFiles[] = $file;
    							}
    						}
    					}
    				}
    				# On ferme la ressource sur le repertoire
    				closedir($dh);
    			}
    		}
    	}
    

    Le résultat sera visible en cliquant sur TRAC() dans la toolbar.

    Enjoy :P
  • 10/10/2013 : Nouvelle version 4.0 toute fraîche qui comprend :
    [list=*]
    [*]correction de bug d'affichage[/*]
    [*]amélioration de la détection de la ligne et du fichier dans lesquels est appelée la méthode trac (ou flow)[/*]
    [*]prise en charge des traductions[/*]
    [*]prise en charge du numéro de version indiqué dans le fichier infos.xml[/*]
    [/list]
  • Ça n'intéresse personne ??? 8.(
Connectez-vous ou Inscrivez-vous pour répondre.