VII. La console de débogage▲
La console de débogage permet au développeur notamment de voir les templates appelés, les variables Smarty et leur contenu ainsi que les variables de configuration. C'est un formidable outil que je vous encourage vivement à utiliser.
Dans son utilisation « de base », l'appel à la console se fait dans le script PHP, ce qui provoque au rechargement de page l'apparition d'une fenêtre « popup » (attention aux bloqueurs de popup). L'affichage de la console est donc effectué en javascript.
VII-A. Appel dans le script PHP▲
Première possibilité, l'appel dans le script PHP qui implémente Smarty. Dans ce cas de figure, on fixe une propriété debugging à true.
// Inclure la bibliothèque smarty
require_once('
../smarty/Smarty.class.php
'
);
// Instancier notre objet smarty
$oSmarty
=
new Smarty();
$oSmarty
->
debugging =
true;
$oSmarty
->
assign("
smarty_phrase
"
,
"
Les chaussettes de l'archiduchesse
"
);
// 3. Affichage du template après passage de l'objet
$oSmarty
->
display('
exemple.tpl
'
);
VII-B. Appel dans le template▲
Une autre façon d'appeler la console consiste à insérer une fonction {DEBUG} dans le template
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<html>
<head>
<title>
Exemple d'utilisation de la console de débogage</title>
</head>
<body>
<p>
{$smarty_phrase|truncate:30}</p>
{debug}
</body>
</html>
VII-C. La console sans javascript▲
Une fonction très intéressante: l'affichage de la console directement dans le fichier de sortie sans passer par javscript, il s'agit d'un paramètre (OUTPUT) à ajouter dans la fonction {debug}:
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<html>
<head>
<title>
La console sans javascript</title>
</head>
<body>
<p>
{$smarty_phrase|truncate:30}</p>
{debug output="html"}
</body>
</html>
Comme vous le voyez, la console n'est plus lancée dans une fenêtre popup, mais bien intégrée à la page web générée.
VII-D. Paramètre dans l'URL▲
Dernière fonctionnalité que nous allons voir, c'est un must !!! la console est 'appelable' en passant un paramètre dans l'URL qui invoque le script php. Pour ce faire il faut permettre à Smarty de le faire en fixant la propriété 'debugging_ctrl' à 'URL' comme ceci :
$oSmarty = new Smarty();
$oSmarty->debugging_ctrl= 'URL';
Voyez dans la barre d'adresse, j'ai passé le paramètre 'SMARTY_DEBUG' (peu importe qu'il y ait une valeur associée), la propriété Smarty « debugging_ctrl » étant à true, la console s'est affichée.