Moteur de template php5

Description

Moteur de template leger niveau code (250 lignes commentaire compris)
l'utilité de ce source est de voir la puissance de la fonction __toString()

Normalement, il est totalement objet, peut etre (voire surement) gourmand en ressource.

C'est un moteur de template qui ne fait que ce qu'on lui demande et qui le fait bien, enfin je l'espere.

c'est un code fait un peu a la va vite pour un petit challenge perso.

Le fichier zip contient :
- la classe
- des templates
- un fichier exemple
- un début de doc

Source / Exemple :


<?php
/**

  • Fichier exemple
    • /
require_once 'Template.php'; $aCss = array('layout.css'=>'', 'color.css'=>'', 'print.css'=>'print', 'screen.css'=>'screen'); $cCss = array(); foreach( $aCss as $file=>$media ){ $oTCss = new ND_Template; $oTCss->setContent('<link href="#link#" #media# rel="stylesheet" type="text/css" />'); $oTCss->addValue('link', $file); $oTCss->addValue('media', 'media="'.$media.'"'); $cCss[] = $oTCss; } $aJs = array('jquery.js', 'checkForm.js'); $cJS = array(); foreach( $aJs as $file){ $oTJs = new ND_Template; $oTJs->setDelimiter('{{','}}'); // on modifie les délimiteurs $content = '<script src="'.$oTJs->definePattern('src').'"></script>'; // génération d'un template $oTJs->setContent($content) ->addValue('src',$file); $cJS[] = $oTJs; } $contentFile = htmlentities(file_get_contents(__FILE__)); $oTHeader = new ND_Template; $oTHeader->setTemplateFile('./tpl/header.tpl') ->addValue('css', $cCss) // ajout d'une collection(tableau) de template ->addValue('js', $cJS); // ajout d'une collection(tableau) de template $oT = new ND_Template(); $oT->setTemplateFile('./tpl/page.tpl') // utilisation d'un fichier template ->addGlobal('Titre', 'Exemple d\'utilisation de ND_Template') // ajout d'une variable globale ->addValue('header', $oTHeader ) // on passe un template ->addValue('codePHP', $contentFile ) // on passe un sous template ->setMaskPattern(false); // on ne supprime pas les identifiants non utilisés echo $oT; // on affiche le template parser

Conclusion :


N'hésitez pas a le commenter, j'essayerai de le modifier si je trouve les demandes acceptables,
sachant que celui ci n'a pas vocation a etre un moteur à la Smarty, qui fait tout et n'importe quoi.

je pense pas que ce code soit d'un niveau initié mais j'ai du mal a le mettre débutant car il utilise des notions pas forcement connu des débutants (expression rationnelle, exception,...) mais celle ci sont peut etre (surement) mal utilisé.

Je n'ai pas réussi a visualiser d'autre optimisation mais je suis preneur

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.