Outils pour utilisateurs

Outils du site


cms:drupal:firephp

Table des matières

FirePHP

Pour utiliser firephp (cf http://www.firephp.org/Wiki/Libraries/Drupal) avec drupal, il faut, en plus du module devel

cd $path_qui_va_bien/modules/devel
mkdir FirePHPCore
cd FirePHPCore
# aller voir la dernière version sur http://www.firephp.org/HQ/FinalRelease.htm
wget http://www.firephp.org/DownloadRelease/FirePHPLibrary-FirePHPCore-0.3.2 -O FirePHPLibrary-FirePHPCore-0.3.2.zip
unzip FirePHPLibrary-FirePHPCore-0.3.2.zip 
ln -s FirePHPCore-0.3.2/lib

Drupal for firebug

Une autre option (que devel/firephp) consiste à installer le module http://drupal.org/project/drupalforfirebug et l'extension firefox qui va avec https://addons.mozilla.org/en-US/firefox/addon/drupal-for-firebug/

Attention au 25/02/2011, ce module casse les flux rss (pour ceux qui ont les droits, pas pour le user lambda à priori) car il insère un gros <div style=“display: none” id=“drupalforfirebug_general”> dans le code source.

Utilisation

Dans les 2 cas, il faut activer les permissions pour utiliser ces sorties.

Et ensuite, dans le code php, on peut se créer des fonctions comme

/**
 * Wrapper to get the output of var_dump in a string
 *
 * @param any $var
 * @return string The var dump
 */
function edulibre_var_dump($var) {
  ob_start();
  // var_export($var); // "Nesting level too deep" could be fired
  var_dump($var);
  $out = ob_get_contents();
  ob_end_clean();
  return str_replace("=>\n", '=> ', $out); // to compact a little bit output
}
 
/**
 * Dump a var either on firebug (with firephp or drupal for firebug) or screen
 * @param any $var
 * @param string $title Optional, title of the dump
 * @param string $output Optional firephp|dru4fb|fb
 *   firephp : if possible, dump to FirePHP (fallback to screen)
 *   dru4fb : if possible, dump to drupal for firebug (fallback to screen)
 *   fb : try firephp then drupal for firebug
 *   else, it will try with a krumo dump, and last a var dump (both in a message on top of the page)
 */
function edulibre_print_dump($var, $title='', $output='fb') {
  static $i = 0;
  $i++;
  if ($i > MAXDUMPS) {
    $var = t('Max dumps reached') .' (' .MAXDUMPS .')';
  }
  if (($output == 'fb' || $output == 'firephp') && function_exists('dfb')) {
    dfb($var, $title, FirePHP::DUMP);
    return TRUE;
  }
  if (($output == 'fb' || $output == 'dru4fb') && function_exists('firep')) {
    firep($var, $title);
    return TRUE;
  }
  // else, we try krumo
  if (function_exists('has_krumo') && has_krumo()) {
    drupal_set_message('Starting dumping (<strong style="color:#a00">'
      .$title .'</strong>)<br />' .krumo_ob($var) ."\nEnd of dump ($title)<br />", 'warning');
    return TRUE;
  }
  // else a simple drupal_set_message
  else {
    drupal_set_message(edulibre_var_dump($var));
  }
}
cms/drupal/firephp.txt · Dernière modification : 25/02/2011 16:19 de daniel