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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

TempLAX a besoin de testeurs (moteur de template hébergé par développez.com) [Infos]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Avatar de cahnory
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 203
    Points : 401
    Points
    401
    Par défaut TempLAX a besoin de testeurs (moteur de template hébergé par développez.com)
    Bonjour à tous, j'ai développé un moteur de template et j'aurai besoin de testeurs afin de voir s'il réagit bien en toute situation.
    La version présentée en test doit faire l'objet d'un rangement en vue d'une distribution donc si vous ne vous y retrouvez pas ne vous en faites pas ça sera corrigé. Toujours est-il que pour tester vous n'aurez pas besoin de mettre le nez dedans.

    Dans sa version démo, TempLAX ne reconnait que les variables et les blocks mais la démo contient un pack d'extensions de base (empty, isset, date, number). D'autre options présentes dans la précédente version (numéro de ligne, nombre de ligne...) feront leur apparition une fois la phase de test terminée mais celle-ci resteront limitée, l'idée étant que le superflu soit contenu sous forme d'extension.

    Pour tester TempLAX vous pouvez vous amusez avec le fichier demo.html (le template) en ajoutant variables, blocks et sous blocks ; et demo.php en remplissant ou non ces variables et blocks.

    Pour ceux qui ont des connaissances (très légères en POO) il vous est possible de tester la création d'extensions.
    Chaque extension se présente sous la forme d'une classe nommée "TempLAX_[extension name]" (sans crochet ni guillemet), celle-ci doit posséder une méthode public "parse" acceptant une string en paramètre et retournant une string.
    Pour utiliser une extension utiliser la méthode extend([extension_name]) (sans crochet). Vous pouvez l'utilisez soit directement sur la classe auquel cas l'extensions sera chargé pour toute les instances de TempLAX, soit sur une instance de TempLAX.

    J'attend beaucoup de vos remarques et vous remercie d'avance pour ce service que vous rendez à moi mais aussi et surtout à la communauté de développer web.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour Cahnory,

    Ton système marche très bien, sympathique, mais peu performant lors d'une grande itération de blocks. N'étant pas un grand connaisseur de système de template je me contenterais de commenter le peu de code que j'ai regardé :

    Je pense que la manière dont tu utilises preg_replace est optimisable, nottament parce que tu remplis ton template de code PHP puis tu évalues le template complet, la fonction preg_replace_callback permet directement d'effectuer un remplacement spécifique sur une occurence de ton expression régulière; Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $content = preg_replace('#<!--BLOCK ([[:alnum:]._\-]+) -->#',
        '<?php
            foreach($this->get_block(\'$1\',\'BLOCK\') as $i=>$block): 
        if($this->get_block_iteration($block, \'$1\', $i)):
       ?>', $content
    remplaçable par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $content = preg_replace_callback('#<!--BLOCK ([[:alnum:]._\-]+) -->#', array(get_class($this), 'block_open_replace'), $content);
    Avec la fonction block_open_replace (voire replace qui ferait partie de l'interface ITempLAXExtension)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // class TempLAX
    public function block_open_replace($matches){
        $replace_with = '';
        foreach($matches as $m){
            // do replace
        }
        return $replace_with;
    }
    Aussi, d'un point de vue POO, les extensions n'ont pas à hériter de TemplAx, c'est TempLAX qui devrait manipuler les extensions et non pas l'inverse. Pour finir, la nécessité d'implémentation de méthodes dans une classe doit se traduire par l'implémentation d'une interface.

    J'éspère ne pas avoir fait mon gros lourd

Discussions similaires

  1. [Smarty] Besoin d'aide pour le moteur de template smarty
    Par all2me dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/04/2007, 10h19
  2. Besoin de testeur pour le Système de GCL PERFORCE
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 1
    Dernier message: 20/04/2006, 16h35
  3. Réponses: 7
    Dernier message: 01/01/2006, 03h28
  4. moteur de template ?
    Par djoukit dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 14/10/2004, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo