La dernière fois nous avons vu comment développer un framework MVC minimaliste. Pour le rendre plus polyvalent, il serait intéressant de lui ajouter un gestionnaire de templates. Dans le même esprit, nonc nous allons développer notre propre solution, simple et efficace.

Commentaires

J'aime bien ta philosophie de travail, que je partage pleinement:)
Cependant sur cet article, dans "Charger un template" j'aurais utilisé la fonction extract ...
http://php.net/manual/fr/function.extract.php

Il y a plus de 5 ans

Bonne idée, c'est encore plus simple avec la fonction extract, Du coup, j'ai mis à jour l'article :)

Il y a plus de 5 ans

J'utilise un système assais similaire. Je pense que lorsque le template provient d'une source fiable (comme doit l'être le développeur du projet) on n'est jamais mieux servi que par php.
En réalité le seul cas utile que je vois aux système de templates plus complexes est celui où le template provient d'un utilisateur ou tout autre source en laquelle on ne peut faire confiance… autant dire que c'est pas un cas extrêmement courant :).

Je suis pas super fan de la construction en namespace + fonctions. Déjà par aprioris (et là c'est ma faute ;)) car je n'ai pas l'habitude de m'organiser ainsi, ensuite car il n'est vraiment pas plus compliqué d'utiliser une structure class/method que je préfère et qui me paraît plus modulable.
Alors j'ai bien lu que tu ne recherches pas à faire un truc modulable mais là on dirait que tu cherches volontairement à ce que ça ne le soit jamais.
Mais c'est annoncé dans ton article, c'est pas ce qui t'a intéressé donc pas de problème (je peu juste pas m'empêcher de donner mon avis quand même ;)).

Le point qui me dérange bien plus est la fonction layout. Je sais, encore, que tu ne cherche pas la modularité mais il y a pour moi des limites et cette fonction les franchit. Au final on a simplement trois appels à load dont deux dont les templates sont "statiques". Pour moi trop peu de gain et de modularité (oui je sais mais tout de même) par rapport à trois load successifs.

Par rapport à la fonction extract, il faut faire gaffe à ce qu'elle n'écrase pas les variables que tu utilises au sein de ta fonction. Là encore je parle de cas particulier mais c'est bon à savoir en cas de bug inexpliqué ;). Un moyen simple de s'en prémunir est de faire l'extract dans un contexte (une fonction) qui n'a pas de variable définie dans son scope et, d'utiliser au besoin des variables passées en paramètre en y accédant via func_get_arg.

Bon, je comprend clairement que le but recherché était de montrer un système de template simple et en ça je trouve que ton article est bon. Il montre la puissance native de php pour le templating et peut-être que beaucoup plus de gens s'y pencheront un peu plus avant d'aller voir du coté de smarty and co. alors que ça n'est pas nécessaire.
Du coup je comprend que ma critique n'était pas forcément attendue mais c'est ce que j'avais en tête alors j'ai tout de même voulu le partager.

Si ça t'intéresse j'ai moi aussi développé mon propre gestionnaire de template. Les objetifs sont du coup différents, le code n'est pas forcément un model (il commence à dater un peu ^^) mais je pense qu'il pourra t'intéresser et intéresser ceux qui sont intéressés par ton article… interessant non ? (à répéter en boucle rapidement :D)
https://github.com/cahnory/DrySocks/blob/master/library/DS/View/Template.php

Il y a plus de 5 ans
Vous devez vous inscrire ou vous connecter pour poster un commentaire