Journal du Net > Développeurs > Contributions > Partagez votre astuce pour lutter contre les bugs

APPEL
A CONTRIBUTION

Vous déployé tous vos efforts pour traquer les bugs en vue de livrer des applications propres. Vous avez certainement une astuce à partager !
Participez
 Suivre chaque variable pas à pas  
Julien Guézennec , Paris

Quel est en quelques lignes l'objectif de votre astuce ?
Afficher la valeur d'une variable a tout moment


Décrivez votre astuce en détails. N'hésitez-pas à inclure des portions de codes.
function db($var='') { // Affichage de X arguments
    $args = func_get_args();
    if (count($args) > 1) {
        foreach ($args as $arg) db($arg);
        return;
    }
    $t_id = 'db_1'; //generateId('db_');
    echo '<'.'textarea id="'.$t_id.'" style="width:100%;height:250px
;font:11px courier;color:#FFFFFF;background:#FF66CC;text-align:left;white-space:pre;padding:4px">';
    if (is_bool($var)) echo ($var ? 'TRUE' : 'FALSE');
    elseif (!empty($var)) var_export($var);
    elseif ($var != '' || $var === '0' || $var === 0) echo $var;
    else echo '*** No Value ***';
    echo '<'.'/textarea>';
   
    js("var lignes = document.getElementById('".$t_id."').value.split('\\n');
    document.getElementById('".$t_id."').style.height = (lignes.length*18+30)+'px';");
}

function getDb($var='', $name='') {
    ob_start();
    db($var, $name);
    $db = ob_get_contents();
    ob_end_clean();
    return $db;
}

function getVars($varList, $excludeList=array()) {
    if (empty($excludeList))
        $excludeList = array('GLOBALS', '_ENV', 'HTTP_ENV_VARS', '_REQUEST', '_FILES', 'HTTP_POST_FILES', '_COOKIE', 'HTTP_COOKIE_VARS', '_POST', 'HTTP_POST_VARS', '_GET', 'HTTP_GET_VARS', '_SERVER', 'HTTP_SERVER_VARS', '_SESSION', 'HTTP_SESSION_VARS', 'excludeList');
    $temp1 = array_values(array_diff(array_keys($varList), $excludeList));
    $temp2 = array();
    while (list($key, $value) = each($temp1)) {
        global $$value;
        $temp2[$value] = $$value;
    }
    return $temp2;
}

// A mettre quelque part dans un code pour afficher toutes les variables PHP presentes à cet endroit : db(getVars(get_defined_vars()));


Publié le 11 mars 2008

Nicolas
Il ne faut pas être trop méchant. Au vu de la source, l'auteur doit tout juste commencer à développer en PHP. Je dirai 3 mois maximum
Guézennec Julien
Moi je trouve cette fonction extrêmement pratique...
Les variables s'affichent quel que soit leur type quel que soit le contexte.
Je développe beaucoup en procédural et sans template...
Grâce a "var_export" je peux récupérer directement en copier-coller dans le textarea de debug la valeur d'un array... Etc...
Il faut l'essayer pour l'adopter !

Db(getXml('http://www. B2bweb. Fr/rss. Php'));
Stuart
Plus simple : function var_out( $_var )
{
echo "nn";
var_dump( $_var );
echo "nn";
return 0;
} $my_var = "TOTO";
var_out( $my_var ); // TOTO
Philippe Feryn
Les contributions sont toujours les bienvenues, mais sincèrement et sans vouloir offenser son auteur, celle-ci me semble "d'un autre âge", voire à la limite de l'amateurisme
Emmanuel
Je ne vois pas réellement l'utilité de ce code...

Encore moins en termes de sécurité.

A part peut être pour un "debug", mais pour ça des outils très performants existent...
3 contributions : 1 2 3
 




 

© Benchmark Group, 69-71 avenue Pierre Grenier 92517 BOULOGNE BILLANCOURT Cedex

RECHERCHER