Si les déclarations dans le système de template
Comment puis-je analyser, disons, {if $var > 2}
ou {if $var}
dans un .le fichier tpl dans mon propre version d'un template de classe. Je n'ai pas envie de l'utiliser smarty comme je n'ai pas besoin de tous leurs plugins. Je veux juste comprendre, si, pour et foreach
consolidés.
Sauf si c'est à des fins d'apprentissage (ce dont je doute parce que vous voulez le code), je voudrais utiliser Smarty (supprimer les plugins si vous n'en avez pas besoin) ou natives de PHP. Pas besoin de réinventer la roue qui a inventé des milliers de fois déjà
Si vous ne souhaitez pas utiliser Smarty, qui n'exclut pas qu'elle soit utilisée comme référence pour les détails de mise en œuvre. Ils sont à l'aide des expressions régulières pour transformer le modèle de pseudo-code pour php.
je suis en train de faire ce à des fins d'apprentissage, mais de trouver qu'il est très difficile d'obtenir ma tête autour de lui. Ainsi, au lieu de l'utilisation de smarty, je veux créer mon propre système de template, donc j'ai une meilleure compréhension de la façon de template fonctionne.
Une fois que vous commencez à aller vers le bas de cette route, votre template de la langue devient un langage de programmation. Il n'y a rien de mal à cela (Modèle de la Trousse d'outils est une chose de beauté), mais l'écriture d'une programmation de langue n'est pas quelque chose pour les timides. J'aimerais commencer par des lectures sur la théorie de l'interpréteur.
Je pense que vous devriez utiliser Smarty. Si vous ne le faites pas, votre solution sera: (a) le buggy, et (b) moyen plus complexe que la simple utilisation de Smarty, même si vous n'utilisez pas leurs plugins. Et, avouons-le, si vous ne voulez pas utiliser leurs plugins... alors vous n'avez pas à.
Si vous ne souhaitez pas utiliser Smarty, qui n'exclut pas qu'elle soit utilisée comme référence pour les détails de mise en œuvre. Ils sont à l'aide des expressions régulières pour transformer le modèle de pseudo-code pour php.
je suis en train de faire ce à des fins d'apprentissage, mais de trouver qu'il est très difficile d'obtenir ma tête autour de lui. Ainsi, au lieu de l'utilisation de smarty, je veux créer mon propre système de template, donc j'ai une meilleure compréhension de la façon de template fonctionne.
Une fois que vous commencez à aller vers le bas de cette route, votre template de la langue devient un langage de programmation. Il n'y a rien de mal à cela (Modèle de la Trousse d'outils est une chose de beauté), mais l'écriture d'une programmation de langue n'est pas quelque chose pour les timides. J'aimerais commencer par des lectures sur la théorie de l'interpréteur.
Je pense que vous devriez utiliser Smarty. Si vous ne le faites pas, votre solution sera: (a) le buggy, et (b) moyen plus complexe que la simple utilisation de Smarty, même si vous n'utilisez pas leurs plugins. Et, avouons-le, si vous ne voulez pas utiliser leurs plugins... alors vous n'avez pas à.
OriginalL'auteur Speedy Wap | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Veuillez utiliser le php.
Il suffit de mettre dans votre fichier tpl:
C'est beaucoup plus simple, moins de code et beaucoup plus vite que l'analyse du fichier en php
OriginalL'auteur AntonioCS
utilisation
Différence entre les if () { } et si () : endif;
OriginalL'auteur Gaurav
Vous avez déjà eu la réponse à votre dernière question: si les déclarations dans les templates php à l'aide de tpl
Mais puisque vous ne serez pas en aller autrement, permettez-moi de répondre rapidement, et puis de le mentionner, qui sera votre certaines prochaine pierres d'achoppement.
À l'aide d'une expression régulière de ce genre de voyage sur une imbriqués
if
. Mais vous ne demandez pas à ce sujet, donc je n'en parle pas. Et comme indiqué dans le commentaire que vous avez réellement besoin de chaîne une fonction centrale qui n'a plus de remplacements ({foreach}
/{include}
/etc.) au lieu de simplementreturn $content
comme ici.C'est faisable, mais en croissance rapide lourd. Et c'est pourquoi tous les autres moteurs de template (qui vous refuser à vérifier) en fait convertir
.tpl
fichiers dans.php
scripts. C'est beaucoup plus facile parce que PHP peut déjà gérer toutes ces structures de contrôle que vous essayez d'imiter avec votre propre de template de classe.Avec des expressions régulières. La conversion de chaque
{if ...}
en<?php if(...): ?>
et chaque{/if}
en<?php endif; ?>
par exemple.un peu de code pourrait être très utile à l'ensemble de la communauté
Oui, il serait probablement le cas. Hencewhy de nombreuses solutions sont déjà dicoverable avec la fonction de recherche. stackoverflow.com/questions/3930053/...
OriginalL'auteur mario
En fait c'est assez simple, sauf si vous avez besoin imbriquée si les conditions.
OriginalL'auteur Alex
Vous pouvez utiliser le format suivant dans votre fichier modèle(.tpl).,
OriginalL'auteur Rajesh
Il y a un exemple de code php qui traite les suivantes temaplate (php 5.3+):
Code:
OriginalL'auteur MaxWell99