Le blog du pangolin

Accueil > Programmation > PHP > CodeIgniter > Le spark du jour : debug-toolbar. (v. 1.0.7 au jour de la rédaction de cet (...)

Le spark du jour : debug-toolbar. (v. 1.0.7 au jour de la rédaction de cet article)

lundi 23 avril 2012, par Super Pangolin

Présentation

Cette librairie permet très simplement d’avoir des informations sur la page courante et de visualiser le contenu de n’importe quel variable. Très utile dans la phase de développement, il est indispensable de la désactiver lors du passage en production.

Voici à quoi elle ressemble minimisée :

et dépliée :

Installation par sparks

Une ligne de commande suffit (merci, Sparks) :

php tools\spark install -v1.0.7 Debug-Toolbar

Vérifiez si une nouvelle version n’est pas sortie entre temps.

Utilisation dans les contrôleurs

Chargement du spark, de la librairie et activation de l’affichage du profileur :

  1. $this->load->spark('Debug-Toolbar/1.x.x');  
  2.         $this->load->library('console');                        
  3.         $this->output->enable_profiler(true);

Télécharger

Ce simple code va permettre d’afficher des informations sur la page actuelle sous la forme d’une pseudo barre d’outil en surimpression de votre vue.

On peut ensuite afficher des informations supplémentaires dans le premier onglet de la barre grâce à la méthode « log ». On peut passer en paramètre un message textuel (pour tester, par exemple, l’entrée dans un bloc conditionnel), ou n’importe quel type de variable (dans ce cas, un print_r de la variable sera exécuté).

Les différents onglets

Les logs

Ici s’affichent les résultats de la méthode « Console::log ».

Les temps d’exécution

On y voit la liste des fichiers chargés avec les temps associés.

La charge mémoire

L’onglet est vide mais son titre affiche l’utilisation mémoire du script courant.

La liste des requêtes en base

C’est dit : la liste des requêtes avec le temps d’exécution associé.

config

Plein d’infos utiles comme la configuration de codeigniter, le contenu de la session ou encore le « $_POST ».

Les fichiers

La liste des fichiers utilisés.

Voici un exemple complet

  1. <?php
  2. class debug_toolbar extends CI_Controller {
  3.     public function index()
  4.     {
  5.         $this->load->spark('Debug-Toolbar/1.0.7');
  6.         $this->load->library('console');
  7.         $this->output->enable_profiler(true);
  8.         if(true){
  9.             Console::log('Je passe tout le temps ici, non?');
  10.         }
  11.         $toto = array('aa', 'zz', 'ee', 'rr', 'tt');
  12.         $titi = new stdClass();
  13.         $titi->a = "aaaa";
  14.         $titi->z = "zzzz";
  15.         $titi->e = "eeee";
  16.         $titi->r = "rrrr";
  17.         $titi->t = "tttt";
  18.         $titi->y = "yyyy";
  19.         Console::log($toto);
  20.         Console::log($titi);
  21.         $this->load->database();
  22.         Console::log($this->db);
  23.         $this->load->view('welcome_message');
  24.     }
  25. }

Télécharger

Résultat :

Console

log       
Je passe tout le temps ici, non?
log       
Array
(
   [0] => aa
   [1] => zz
   [2] => ee
   [3] => rr
   [4] => tt
)
log       
stdClass Object
(
   [a] => aaaa
   [z] => zzzz
   [e] => eeee
   [r] => rrrr
   [t] => tttt
   [y] => yyyy
)
log       
DM_DB_Driver Object
(
   [dbdriver] => mysql
   [_escape_char] => `
   [_like_escape_str] =>
   [_like_escape_chr] =>
   [delete_hack] => 1
   [_count_string] => SELECT COUNT(*) AS
   [_random_keyword] =>  RAND()
   [use_set_names] =>
   [ar_select] => Array
       (
       )

   [ar_distinct] =>
   [ar_from] => Array
       (
       )

   [ar_join] => Array
       (
       )

   [ar_where] => Array
       (
       )

   [ar_like] => Array
       (
       )

   [ar_groupby] => Array
       (
       )

   [ar_having] => Array
       (
       )

   [ar_keys] => Array
       (
       )

   [ar_limit] =>
   [ar_offset] =>
   [ar_order] =>
   [ar_orderby] => Array
       (
       )

   [ar_set] => Array
       (
       )

   [ar_wherein] => Array
       (
       )

   [ar_aliased_tables] => Array
       (
       )

   [ar_store_array] => Array
       (
       )

   [ar_caching] =>
   [ar_cache_exists] => Array
       (
       )

   [ar_cache_select] => Array
       (
       )

   [ar_cache_from] => Array
       (
       )

   [ar_cache_join] => Array
       (
       )

   [ar_cache_where] => Array
       (
       )

   [ar_cache_like] => Array
       (
       )

   [ar_cache_groupby] => Array
       (
       )

   [ar_cache_having] => Array
       (
       )

   [ar_cache_orderby] => Array
       (
       )

   [ar_cache_set] => Array
       (
       )

   [ar_no_escape] => Array
       (
       )

   [ar_cache_no_escape] => Array
       (
       )

   [username] => root
   [password] =>
   [hostname] => localhost
   [database] => mapointeuse
   [dbprefix] =>
   [char_set] => utf8
   [dbcollat] => utf8_general_ci
   [autoinit] => 1
   [swap_pre] =>
   [port] =>
   [pconnect] => 1
   [conn_id] => Resource id #36
   [result_id] => 1
   [db_debug] => 1
   [benchmark] => 0.013406991958618
   [query_count] => 1
   [bind_marker] => ?
   [save_queries] => 1
   [queries] => Array
       (
           [0] => INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('f2c0df1e5ca03fff7b36de5e2154011e', '127.0.0.1', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19', 1335181635, '')
       )

   [query_times] => Array
       (
           [0] => 0.013406991958618
       )

   [data_cache] => Array
       (
       )

   [trans_enabled] => 1
   [trans_strict] => 1
   [_trans_depth] => 0
   [_trans_status] => 1
   [cache_on] =>
   [cachedir] =>
   [cache_autodel] =>
   [CACHE] =>
   [_protect_identifiers] => 1
   [_reserved_identifiers] => Array
       (
           [0] => *
       )

   [stmt_id] =>
   [curs_id] =>
   [limit_used] =>
   [stricton] =>
)

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.