V - Documentation de la classe Fast-Template

  5.1 - Attributs

$rootDir Répertoire de base du thème
$parseVar Tableau contenant les variables à convertir
$parseFunction Tableau contenant les fonctions à executer
$parseModule Tableau contenant les modules à afficher
$parseTime Temps en secondes que le script à mit pour interpréter le fichier
$strictMode Indique si on est en mode strique et donc si on enregistre les erreurs
$errorMessage Contient les messages d'erreur
$parseResult Variable contenant le résultat

NOTE : Les attributs ne doivent pas être accèdées directement. Pour cet effet, des méthodes ont été mises en place.


  5.2 - Méthodes

    5.2.1 - Le constructeur

Le constructeur accepte comme paramètre le répertoire par défaut du theme. Si vous ne mettez rien, la classe prendra comme répertoire le répertoire courant.

    5.2.2 - addVar()

La méthode addVar() ajoute une variable aux fichiers templates. Le premier paramètre est le nom de la variable et le deuxième sa valeur. Toutefois, vous pouvez utiliser un tableau associatif pour définir un ensemble de variables et de valeurs. Exemple :
    addVar("MA_VARIABLE", "Sa valeur") ;
    addVar(array("MAVARIABLE1" => "Savaleur", "MAVARIABLE2" => "Sa valeur aussi")) ;

    5.2.3 - deleteVar()

La méthode deleteVar() supprime la variable passée en paramètre. On ne peut pas utiliser les tableaux associatifs. Exemple :
    deleteVar("MAVARIABLE2") ;

    5.2.4 - getVarValue()

La méthode getVarValue() retourne la valeur de la variable passée en paramètre. On ne peut pas utiliser les tableaux associatifs.

    5.2.5 - addFunction()

La méthode addFunction() ajoute une fonction aux fichiers templates. Le premier paramètre est le nom de la fonction et le deuxième son code associé. Toutefois, vous pouvez utiliser un tableau associatif pour définir un ensemble de fonctions et de codes. Exemple :
    addFunction("MA_FONCTION", "echo 'hello world' ;") ;
    addFunction(array("MAFONCTION1" => "echo date() ;", "MAFONCTION2" => "\$i++")) ;

Pour que le résultat de la fonction soit inséré dans le fichier template, il faut que la fonction écrive dans la variable $STDOUT. Pour faire apparaître des erreurs, elle doit écrire dans la variables $STDERR.

    5.2.6 - deleteFunction()

La méthode deleteFunction() supprime la fonction passée en paramètre. On ne peut pas utiliser les tableaux associatifs. Exemple :
    deleteFunction("MAFONCTION2") ;

    5.2.7 - getFunctionValue()

La méthode getFunctionValue() retourne le code de la variable passée en paramètre. On ne peut pas utiliser les tableaux associatifs.

    5.2.8 - addModule()

La méthode addModule() ajoute un module aux fichiers templates. Le premier paramètre est le nom du module et le deuxième le nom du fichier associé. Toutefois, vous pouvez utiliser un tableau associatif pour définir un ensemble de modules et de fichiers. Exemple :
    addModule("MON_MODULE", "essai.php") ;
    addModule(array("MOMMODULE1" => "module1.php", "MONMODULE2" => "module2.php")) ;

Pour que le résultat du module soit inséré dans le fichier template, il faut que le module écrive dans la variable $STDOUT. Pour faire apparaître des erreurs, il doit écrire dans la variables $STDERR.

    5.2.9 - deleteModule()

La méthode deleteModule() supprime la fonction passée en paramètre. On ne peut pas utiliser les tableaux associatifs. Exemple :
    deleteModule("MONMODULE2") ;

    5.2.10 - getModuleValue()

La méthode getModuleValue() retourne le nom du fichier passée en paramètre. On ne peut pas utiliser les tableaux associatifs.

    5.2.11 - setStrictMode()

La méthode setStrictMode() fait passer la classe fast-template en mode strict ou debuggage. Dès que quelque chose ne va pas, il y a une erreur qui est signalée.

    5.2.12 - unsetStrictMode()

La méthode unsetStrictMode() fait retourner la classe fast-template en mode normal.

    5.2.13 - getErrorMessage()

La méthode getErrorMessage() retourne un tableau contenant les erreurs détectées pendant que la classe était en mode strict.

    5.2.14 - getParseTime()

La méthode getParseTime() retourne le temps en seconde que la classe à mit pour parser le fichier.

    5.2.15 - checkVarName()

La méthode checkVarName() vérifie que la variable à un nom correct, i.e., ne commence pas par un chiffre et est composé de lettre majuscule/minuscule, de chiffre et de l'underscore.

    5.2.16 - addVarInFile()

La méthode addVarInFile() lit le fichier passé en paramètre pour acquérir les variables paramètrée dedans. Un fichier doit avoir la structure suivante :
    MON_NOM_DE_VARIABLE = "ma valeur"
    DEUXIEME_VARIABLE     =                      'Super sa valeur ! Mais l\'apostrophe ?'

La chaine représentant la valeur doit être encadrée par " ou '. Si vous souhaitez utiliser le caractère " ou ' qui sert de délimiteur, doit être précédé du caractère d'omission \.

    5.2.17 - parse()

La méthode parse() traduit le fichier passé en paramètre et affecte le résultat dans la variable parseResult.

    5.2.18 - clearResult()

(je change de façon d'expliquer car j'en est marre de toujours commencer par La méthode...)
Efface le contenut de la variable $parseResult.

    5.2.19 - getParseResult()

Renvoit le résultat de l'interprétation du fichier.

    5.2.20 - printResult()

Affiche le résultat de l'interpétation.

    5.2.21 - parseLine()

Interprète la ligne passée en paramètre.

  5.3 - Utilisation de la classe

La classe fasttemplate est très simple à utiliser. Pour illustrer son utilisation, je vous fournit l'exemple ci-dessous :
index.php :
    <?php
    // Inclu le fichier fasttemplate
    include("fasttemplate.php") ;

    // Créer un objet de classe fasttemplate. Le chemin d'accès ne doit pas
    // forcément se terminer par un /
    $monTheme = new fasttemplate("repertoire_contenant_les_themes") ;

    // Passe en mode strict
    $monTheme->setStrictMode() ;

    // Ajout une variable
    $monTheme->addVar("MA_VARIABLE", "coucou") ;

    // Ajoute une fonction
    $monTheme->addFunction("nom", "\$STDOUT = 'mon nom';") ;

    // Ajoute un module
    $monTheme->addModule("unModule", "essai.php") ;

    // Prépare la page
    $monTheme->parse("index.htm") ;

    // Affiche la page
    $monTheme->printResult() ;

    // Affecte le résultat à un variable
    $monTheme->addVar("PAGE", $monTheme->getParseResult()) ;

    // Efface le résultat
    $monTheme->clearResult() ;

    // Affiche un ligne contenant l'ancienne page
    $monTheme->parseLine("Coucou voici la page { PAGE }") ;

    // Affiche le tout
    $monTheme->printResult() ;

    // Affiche les erreurs
    $erreur = $monTheme->getErrorMessage() ;

    for($i = 0; $i < count($erreur); $i++)
    {
        echo $erreur[$i] ;
    }
    ?>

index.htm :
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <body>
    { MA_VARIABLE }<br>
    { function#nom }<br>
    { module#unModule }<br>
    </body>
    </html>

essai.php :
    <?php
    $STDOUT = "Mais c'est un module !" ;
    $STDERR = "Il y a des erreurs ?" ;
    ?>


$ Bubule - 1.0 - 25/07/2003 14h52 $