IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Initiation aux templates en PHP avec Smarty


précédentsommairesuivant

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.

console.php
Sélectionnez
// 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');
Image non disponible

VII-B. Appel dans le template

Une autre façon d'appeler la console consiste à insérer une fonction {DEBUG} dans le template

consoleInTemplate.tpl
Sélectionnez
<!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}:

consoleEnHtml.tpl
Sélectionnez
<!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>
Image non disponible
Affichage de la console sans passer par JAVASCRIPT

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 :

consoleUrl.php
Sélectionnez
$oSmarty = new Smarty();
 
$oSmarty->debugging_ctrl= 'URL';
Image non disponible
Appel de la console en utilisant un paramètre dans l'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.


précédentsommairesuivant

Copyright © 2008 Eric POMMEREAU. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.