Quoi de plus frustrant de ne pas savoir ce qui se passe lorsque qu'une page se charge dans Drupal ?
On a souvent des pages de redirection qui contiennent des erreurs et qui nous empêchent de les voir.
Lorsque que l'on développe un module ou que l'on construit un thème, on aimerait parfois savoir ce qui se trouve dans certaines variables.
Alors qu'est ce qui s'offre à nous ? Un drupal_set_message('<pre>'.print_r($variable, true).'</pre>'); ? Un peu long vous ne trouvez pas ?
Eh bien le module Devel, spécifiquement conçu pour faciliter le développement de modules et l'administration de Drupal apporte quelques fonctions tout simplement géniales :
1
| dsm($input, $name = NULL); |
alias de drupal_set_message, met la variable en forme de menu déroulant avec la librairie Krumo
$input : votre variable ou votre texte
$name : (optionnel) préfixe a donner au message (exemple : dsm('contenu de ma variable', 'ma variable); donnera "ma variable => contenu de ma variable")
1
| dpm($input, $name = NULL); |
alias de dsm()
1
| dvm($input, $name = NULL); |
même fonctionnement que dsm() mais en utilisant var_dump() (exemple : dvm('mon contenu'); donnera "string(11) "mon contenu")
dpr($input, $return = FALSE, $name = NULL);
affiche le print_r() de votre argument au debut de la page ou le stocke dans une variable (très pratique si les messages ne sont affichés dans aucune région du thème)
$return : si TRUE, le print_r() de l'entrée sera renvoyé
kpr($input, $return = FALSE, $name = NULL);
même fonctionnement que dpr() mais affichera si possible avec la librairie Krumo
dvr($input, $return = FALSE, $name = NULL);
même fonctionnement que dpr() mais utilisera var_dump()
Mais aussi d'autres ne concernant pas forcément l'affichage des variables :
dargs($always = TRUE);
affiche les arguments passés à la fonction courante
$always : si FALSE, ne l'affichera qu'une seule fois
db_queryd($query);
affiche la requête SQL complète et la possible erreur générée dans le navigateur (très utile pour savoir ce que l'on passe comme argument à une requête)
dfb($arg, ...);
affiche les arguments dans la console Firebug si FirePHP est installé
Toutes ces petites fonctions ne sont pas forcément documentées (encore moins en français), donc si vous en découvrez d'autres n'hésitez pas à partager 