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

Gestion d'un système de templates en PHP

Gestion d'un système de template en PHP


précédentsommaire

6. Annexe

6.1. Structure de la classe (code PHP)

template.php
Sélectionnez
<?php
class Template {
    private $page;                // Code source HTML de la page - fichier.tpl
    private $infoTpl = array();   // Tableau des constantes => données

    /**
     * Vérifie l'existence du fichier
     */    
    function __construct($file) {
    }
    
    /**
     * Enregistre les constantes dans $infoTpl
     * infoTpl[.][][constant] = data;
     */
    function simpleVar($varArray = array()) {
    }
    
    /**
     * Enregistre les constantes dans $infoTpl
     * infoTpl[type][lastID][constant] = data;
     *
     * - type    = nom du bloc contenant la boucle
     * - lastID    = ID du tableau où se trouve le script
     */
    function loopVar($type, $varArray = array()) {
    }    
    
    /**
     * Remplace les constantes par leurs données
     */
    function constantReplace() {
    }
    
    /**
     * Retourne le code HTML parser
     */
    function parse() {
    }
}
?>

6.2. Structure avancée de la classe

Schéma - structure avancée de la classe
Schéma - structure avancée de la classe
Explication du schéma :
  1. __construct() se lance automatiquement à l'instanciation de la classe;
  2. Teste si le fichier passé en argument existe et est ouvert en lecture;
  3. Mise du code source HTML du fichier template dans $page;
  4. Récupération des constantes/données de test.php;
  5. Traitement avec simpleVar() ou loopVar() selon les besoins;
  6. Mise des constantes/données traitées dans $infoTpl;
  7. Parse le code avec parse();
  8. parse() fait appel à constantReplace();
  9. constantReplace() remplace les constantes par leurs données.

6.3. Structure du tableau $InfoTpl

Le tableau $infoTpl sera de cette forme : Note : le texte entre acolades représente le nom des variables que j'utilise dans mon code

$infoTpl
Sélectionnez
{$infoTpl}
Array
(
    {$type}
    [.] => Array
        (
           {$info[$i]}
            [0] => Array
                (
                    {$constant    => $data}
                    [WELCOME_MSG] => Bonjour !!
                )

            [1] => Array
                (
                    [GOODBYE] => Aurevoir !!
                )

        )

    [country] => Array
        (
            [0] => Array
                (
                    [ID] => BE
                    [COUNTRY] => Belgique
                )

            [1] => Array
                (
                    [ID] => FR
                    [COUNTRY] => France
                )

            [2] => Array
                (
                    [ID] => ITA
                    [COUNTRY] => Italie
                )

        )

)

précédentsommaire

Copyright © 2006 Adrien Pellegrini. 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.