J'ai lu quelque part que PHP est un langage de modélisation. Qu'est-ce qu'un langage de création de modèles ? Qu'est-ce qui fait que PHP en est un ? Quels sont les autres langages de création de modèles ?
Réponses
Trop de publicités?Le principe de base d'un langage modèle est que le langage est "intégré" dans un autre document maître. Plus précisément, dans un document moyen, la taille totale du document est principalement constituée de la source du document et non du langage du modèle.
Prenons deux exemples fictifs :
print "This is a simple document. It has three lines."
print "On the second line is my name: " + firstName
print "This is the third line."
vs
This is a simple document. It has three lines.
On the second line is my name: $firstName
This is the third line.
Vous pouvez voir dans le premier exemple que la langue enveloppe le texte du document. Dans le deuxième exemple, c'est le texte du document qui prédomine, avec juste un peu de code.
Certains langages de template sont des langages à usage général complets, comme PHP, ASP.NET et JSP de Java. D'autres sont plus limités et conçus spécifiquement pour la création de modèles, comme Velocity et FreeMarker (deux utilitaires pour Java).
De nombreux traitements de texte, tels que Microsoft Word, possèdent leurs propres capacités de création de modèles, communément appelées "fusion postale".
Un langage de modélisation est essentiellement un langage qui permet de définir des espaces réservés qui devront être remplacés ultérieurement pour la mise en œuvre de conceptions. Évidemment, les langages de création de modèles modernes prennent en charge non seulement les espaces réservés, mais aussi les boucles et les conditions qui sont souvent nécessaires à la conception d'une page Web. Certains prennent même en charge des techniques plus avancées mais toujours utiles, comme l'héritage de modèles, les macros et le sandboxing.
À propos de PHP : Comme le PHP lui-même peut être interpolé dans le HTML, il peut être utilisé comme un langage de modèle. D'un autre côté, PHP est assez verbeux, surtout si les balises courtes ne sont pas activées.
Un moteur de modèles rapide et riche en fonctionnalités est Brindille . Je le recommande plutôt que smarty. Il offre plus de fonctionnalités (notamment l'héritage des modèles) et est plus rapide.
PHP n'est pas nécessairement un langage de modélisation, mais il peut passer ce test grâce à la façon dont il est interprété.
Lorsque le fichier PHP est lu, seul le code contenu dans les balises de bloc PHP ( <?php
y ?>
) est examiné, le reste est transmis à la sortie. Ainsi, un fichier .html pourrait être traité par l'interpréteur PHP, et rien ne se passerait, le HTML serait affiché.
Si certaines zones du fichier HTML contenaient des balises et du code PHP, celui-ci serait interprété et produirait probablement des données à ces endroits. Cela pourrait être considéré comme un modèle. En général, l'idée est d'avoir une couche de sortie, puis un contenu dynamique qui l'accompagne. Vous pourriez avoir un modèle de page de produit, et ensuite, sur la base d'une variable d'entrée, remplir le modèle avec les détails d'un seul produit, les images, les photos, etc.
Il existe de véritables moteurs de modèles pour PHP (Smarty par exemple). http://www.smarty.net/ ) que vous pouvez consulter.
Je n'en ai jamais été fan, mais beaucoup de gens y trouvent leur compte.
Vous pouvez lire sur Smarty 3.
http://www.smarty.net/v3_overview
par exemple, il y a maintenant un héritage de modèle