Smarty

Logiciel capture d'écran:
Smarty
Détails logiciels:
Version: 3.1.5
Date de transfert: 11 May 15
Licence: Gratuit
Popularité: 1

Rating: nan/5 (Total Votes: 0)

Smarty est pas réellement un "Template Engine", il serait plus juste de décrire comme un "/ Présentation cadre modèle." Autrement dit, il fournit le programmeur et concepteur modèle avec une multitude d'outils pour automatiser les tâches les plus courantes traitées à la couche de présentation d'une demande. Je souligne le Cadre de mot parce Smarty est pas un moteur de template tag-remplacement simple. Bien qu'il puisse être utilisé pour un tel but simple, son accent est mis sur le développement rapide et indolore et le déploiement de votre application, tout en conservant de haute performance, l'évolutivité, la sécurité et la croissance future.
Alors est Smarty bon pour vous? Qu'est-ce qu'il revient à dire utiliser le bon outil pour le travail. Si vous voulez remplacer variable simple, vous voudrez peut-être de regarder quelque chose de simple ou même rouler votre propre. Si vous voulez un cadre structurant robuste, avec de nombreux outils pour vous aider que votre demande évolue vers l'avenir, Smarty est probablement un bon choix.
Pourquoi l'utiliser?
Un des objectifs de conception Smartys primaire est de faciliter la séparation de code de l'application de la présentation. Typiquement, le code de l'application contient la logique métier de votre application, écrit et maintenu dans le code PHP. Ce code est maintenue par les programmeurs. La présentation est la façon dont votre contenu est présenté à l'utilisateur final, ce qui est écrit et maintenu dans des fichiers de modèle. Les modèles sont maintenus par les designers de templates.
Lors de sa fonction la plus fondamentale, le code de l'application recueille contenu, assigne au moteur de template et l'affiche. Le contenu pourrait être quelque chose comme le titre, titre, l'auteur et le corps d'un article de journal. Le code de l'application n'a aucun souci comment ce contenu sera présenté dans le modèle. Le concepteur de modèle est responsable de la présentation. Ils éditer les fichiers de modèle, en ajoutant balisage et l'amener à l'achèvement. Cela implique généralement des choses comme des balises HTML, feuilles de style en cascade et d'autres outils fournis par le moteur de template.
Ce paradigme sert à plusieurs fins:
) Les concepteurs ne peut pas casser le code de l'application. Ils peuvent jouer avec les modèles tout ce qu'ils veulent, mais le code reste intacte. Le code sera serré, plus sûr et plus facile à maintenir.
) Des erreurs dans les modèles sont limités aux Smartys routines de gestion des erreurs, ce qui les rend aussi simple et intuitive que possible pour le concepteur.
) Avec la présentation sur son propre calque, les concepteurs peuvent modifier ou complètement repenser à partir de zéro, le tout sans intervention de la part du programmeur.
) Les programmeurs ne sont pas déconner avec des modèles. Ils peuvent aller de maintenir le code de l'application, la modification du contenu de manière est acquis, faire de nouvelles règles de gestion, etc., sans déranger la couche de présentation.
) Les modèles sont une représentation proche de ce que le résultat final sera, qui est une approche intuitive. Les concepteurs ne se soucient pas comment le contenu obtenu au modèle. Si vous avez des données superflues dans le modèle par exemple une instruction SQL, ce qui ouvre le risque de casser le code de l'application par la suppression ou l'altération accidentelle par le concepteur.
) Vous n'êtes pas ouvrez votre serveur à l'exécution de code PHP arbitraire. Smarty possède de nombreuses fonctionnalités de sécurité intégrées dans les concepteurs ne sera donc pas atteinte à la sécurité, qu'elle soit intentionnelle ou accidentelle. Ils ne peuvent faire ce qu'ils sont confinés dans les modèles.
Bien que le code d'application est séparé de la présentation, cela ne signifie pas nécessairement que la logique est séparée. Le code de l'application a évidemment logique, mais les modèles peut avoir une logique basée sur la condition que ce soit pour la présentation seulement. Par exemple, si le concepteur veut alterner les couleurs des lignes ou majuscules Certains contenus attribué, ils peuvent. Ceci est logique de présentation, quelque chose que le programmeur ne devrait pas être concerné par. Combien de fois avez-vous eu une certaine présentation affiché dans une seule colonne et puis vous voulu en deux ou trois colonnes, de sorte que le code de l'application doit être ajusté pour tenir compte de cette? Une meilleure approche consiste à attribuer le contenu dans un seul tableau et laisser le modèle gérer la présentation. Cela simplifiera votre demande et conserver vos templates flexible. Smarty fournit les outils pour gérer ce genre de situation.
Cela ne signifie pas que Smarty vous empêche de mettre la logique d'application dans le modèle, vous devez avoir un peu d'auto-discipline. Voici un exemple d'intégration de la logique métier dans le modèle (ce qui est droit, éviter de le faire si possible):
{If $ smarty.session.user et ($ user_type eq "éditeur" ou $ user_type eq "admin")}
modifier
{/ If}
Les vérifications logiques si l'utilisateur est connecté et ils sont soit un éditeur ou un administrateur, puis ils sont autorisés à modifier ce si la case d'édition montre. Voilà la logique qui appartient dans le code de l'application. Le modèle ne se soucie pas de ce que les pouvoirs cet utilisateur possède, il a juste besoin de savoir si la zone d'édition est affiché ou pas! Examinons donc à une approche plus appropriée:
{If $ edit_flag}
modifier
{/ If}
Il est au programmeur d'application pour attribuer le edit_flag $, un simple et facile à comprendre variable dans le modèle. De cette façon, le modèle est plus compter sur votre structure de données sous-jacente. Si le format de la structure de données de session ne change jamais, rien ne doit être ajusté dans le modèle.
Regardons maintenant quelques choses que vous pouvez faire avec Smarty. Une chose qu'il peut faire est de fonctions personnalisées. Ce sont des mots-clés dans le modèle qui exécutent une certaine tâche. Exemple:
{Fichier html_image = "masthead.gif"}
Ici, nous avons une fonction appelée "html_image". Cette fonction prend l'image donnée dans le "fichier" attribut et fait tout le travail nécessaire de venir avec le code HTML suivant:

La fonction d'image a fait la corvée de déterminer la hauteur et la largeur et la fourniture de l'indicateur de bordure par défaut. Bien sûr, vous pouvez simplement utiliser la balise HTML statique dans le modèle à la place, mais cela montre comment une fonction personnalisée peut être utilisée pour simplifier une tâche très commune. Le concepteur peut se concentrer sur la conception et moins sur l'aspect technique. En outre, si le concepteur décide de déposer dans une image différente taille de tête de mât, le modèle n'a pas besoin de réglage.
html_image est une fonction qui est livré avec Smarty. Vous pouvez également créer vos propres fonctions personnalisées. Voici un autre exemple de ce que l'on pourrait ressembler:
{Type de html_link = "article" id = "abc123" text = "Fire sort Hôtel"}
Cela est d'utiliser une fonction personnalisée appelée "html_link". Il est livré avec le code HTML suivant:
Feu sort Hôtel
Qu'est-ce accomplir? Pour l'un, le concepteur n'a pas besoin d'être concernés par le format d'une URL à un article. Avec URL codées en dur, ce qui se passe si un jour le programmeur décide de nettoyer les choses, et change la syntaxe d'URL à partir de /display_article.php?id=abc123 / ART / abc123? Il faudrait modifier chaque modèle avec un article URL. Ceci est juste un autre exemple de la façon dont une fonction de modèle peut faire des modèles plus faciles à entretenir.
Maintenant, pour un peu sur les programmeurs et les modèles. Auparavant, il a été mentionné que le programmeur a pas de soins pour ce que les modèles font avec le contenu. Au niveau conceptuel cela est vrai, mais dans le monde réel, vous ne vont pas attendre le designer de templates d'avoir à construire tous les modèles de l'air mince. Après tout, la logique métier ne détermine quel contenu est attribuée aux modèles. Donc, le programmateur typiquement configuration des modèles de squelette pour le concepteur pour commencer. Celui-ci contient généralement les éléments bruts tels que les variables de contenu et une boucle section, et peut-être quelques balises simples afin qu'ils ne commencent pas par le contenu dans un grand désordre. Voici un exemple d'un modèle de squelette qui parcourt une liste d'articles et les affiche dans un tableau:


{Section name = boucle de l'art $ = article}


{/ Section}
{$ article [l'art] .headline}
{$ article [l'art] .date}
{$ article [l'art] .author}

La sortie peut ressembler à ceci:







La Conquête de l'Ouest
2 décembre 1999
John Wayne
équipe perd, l'entraîneur quitte
2 février 2002
John Smith
Gourmet Cuisine
23 janvier 1954
Betty Crocker

Maintenant, pour certaines questions courantes:
Pourquoi utiliser des modèles à tous? Qu'est-ce si difficile d'écrire Au lieu de {$ title}?
Rendre les choses plus faciles à lire était pas un objectif de conception, mais plus d'un effet secondaire. Utilisation de modèles a d'énormes avantages, dont beaucoup ont été expliquées ci-dessus. Puisque nous sommes dans un environnement de modèle de toute façon, {$ title} est moins étrangère que php echo <$ title?; ? >, En particulier lorsque vous commencez à regarder dans de longues pages de contenu, de sorte qu'il était assez évident que une syntaxe simple contribue à rendre les modèles plus facile à lire et à maintenir.
Modèle de prendre le temps d'analyser, faire des applications beaucoup plus lent.
Cela peut être vrai dans certains cas, mais avec Smarty il est pas plus lent que l'exécution d'un script PHP. Sur la première exécution d'un modèle, Smarty convertit les fichiers de modèle dans des scripts PHP (appelé modèle compilation.) Ensuite, le script PHP est juste inclus. Ajoutez à cela un accélérateur de PHP et que vous avez vraiment un environnement de gabarits rapide avec une surcharge minimale.
Smarty est trop compliqué, comment peut-il être si vite?
Le noyau de Smarty est assez maigre compte tenu de ce qu'il est capable de faire. La plupart de ses fonctionnalités réside dans plugins. L'architecture de plugin est conçu de telle sorte que seuls les plugins nécessaires sont chargés à la demande. Grâce à ce cadre, ajoutant même des centaines de nouveaux plugins ne seront pas affecter les performances. Cela rend Smarty rapide, évolutive et flexible.
Smarty dispose également de fonctionnalités de mise en cache qui peut dynamiquement rafraîchir et garder des parties de la page uncached à votre goût. Caching enregistre la sortie des templates compilés, sauver la nécessité de les exécuter à chaque invocation.
Tous ces discours sur les accélérateurs, comment ne Smarty fonctionner sans un?
En fait, il fonctionne très bien sans. Smarty ne nécessite pas un accélérateur, mais le modèle fichiers eux-mêmes profiter de l'un, quelque chose qui est unique à Smarty (autant que je sache). Si vous ne disposez pas d'un accélérateur, l'exécution du modèle est pas aussi rapide, mais ne tarde pas par tous les moyens, car ils ne sont pas analysés! Vous conservez également tous les autres avantages et caractéristiques de Smarty. En outre, puisque les accélérateurs sont librement disponibles, il est pas vraiment une excuse pour ne pas être en utilisez un. Ils vous aideront performance avec toutes les applications PHP, Smarty utilisant ou non.
Comment peut-il être plus facile à entretenir?
Certaines choses ne peuvent pas être expliquées, mais seulement connu. L'avantage de la séparation de la logique de la présentation de la demande ne peut pas être assez souligné. Smarty a aussi quelques fonctionnalités intéressantes de manipulation d'erreur et une des variables intégrées dans la console de débogage de sorte que vous pouvez voir la hiérarchie de modèle et assignés à un coup d'œil. Ajout de fonctionnalités personnalisées à Smarty est aussi facile que de les laisser tomber dans le répertoire du plugin et les mentionner dans le modèle.
Les balises de modèle ne sont pas basé sur XML, Mon éditeur ne l'aime pas.
Les délimiteurs {} sont juste un défaut, ils sont faciles à discerner entre les balises HTML. Si vous ne les aimez pas, changez vos délimiteurs ou peut-être quelque chose de plus comme XMLish Il ya aussi beaucoup de contributions d'utilisateurs pour dreamweaver et autres, leur donner un look dans le domaine des contributions.
Voilà Smarty en un mot, je l'espère, vous pouvez l'ajouter à votre arsenal d'outils pour la construction d'applications Web. Pour vraiment en savoir plus, lire le manuel haut en bas, rejoindre les forums et voir ce que les gens discutent

Caractéristiques :.

  • Mise en cache: Smarty fournit des fonctionnalités de mise en cache à grain fin pour mettre en cache tout ou partie d'une page Web rendu, ou laissant des parties non mis en cache. Les programmeurs peuvent enregistrer des fonctions de modèle comme cachables ou non être mis en cache, groupe pages mises en cache en unités logiques pour faciliter la gestion, etc.
  • les fichiers de configuration: Smarty peut assigner des variables tirées des fichiers de configuration. Les concepteurs de modèles peuvent maintenir les valeurs communes à plusieurs modèles dans un endroit sans intervention du programmeur, et les variables de configuration peuvent être facilement partagé entre la programmation et la présentation des parties de l'application.
  • Sécurité: Les modèles ne contiennent pas de code PHP. Par conséquent, un concepteur de modèle n'a pas déclenché avec la pleine puissance de PHP, mais seulement le sous-ensemble des fonctionnalités mises à leur disposition depuis le programmateur (code d'application).
  • Facile à utiliser et à entretenir: les concepteurs de pages Web ne sont pas aux prises avec la syntaxe du code PHP, mais à la place une syntaxe spécifique, facile à utiliser pas très différente de la version HTML brut. Les modèles sont une représentation très proche de la sortie finale, raccourcissant considérablement le cycle de conception.
  • Les modificateurs de variables: Le contenu de variables affectées peut facilement être ajusté à l'affichage en temps avec des modificateurs, tels que l'affichage dans tous les majuscules, html-échappé, formatage des dates, en tronquant les blocs de texte, ajouter des espaces entre les personnages, etc. Encore une fois , ceci est accompli sans aucune intervention du programmateur.
  • Modèle Fonctions: De nombreuses fonctions sont disponibles pour le concepteur de modèle pour gérer des tâches telles que la génération des segments de code HTML (listes déroulantes, tables, pop-ups, etc.), l'affichage du contenu des autres modèles en ligne, parcourir un tableau de contenu , le formatage du texte pour la sortie e-mail, un circuit vélo couleurs, etc.
  • Filtres:. Le programmeur a le contrôle complet de la production de modèle et compilé le contenu de modèle avec des pré-filtres, filtres et post-sortie-filtres
  • Ressources:. Les modèles peuvent être tirés à partir de plusieurs sources en créant de nouveaux gestionnaires de ressources, puis de les utiliser dans les modèles
  • Plugins: Presque tous les aspects de Smarty est contrôlé par l'utilisation de plugins. Ils sont généralement aussi facile que de les laisser tomber dans le répertoire du plugin, puis de les mentionner dans le modèle ou les utiliser dans le code de l'application. Beaucoup de contributions communautaires utilisateur sont également disponibles. (Voir la section plugins du forum et wiki.)
  • Add-ons: Beaucoup communauté d'utilisateurs a contribué Add-ons sont disponibles telles que la pagination, de validation de formulaire, Menus déroulants, calandre date Pickers, etc. Ces outils aident à accélérer le cycle de développement, il n'y a pas besoin de re inventer le code de la roue ou de débogage qui est déjà stable et prêt pour le déploiement. (Voir la section Add-ons du forum et wiki.)
  • Correction:. Smarty est livré avec un haut-de débogage console de sorte que le concepteur de modèle peut voir toutes les variables affectées et le programmeur peut enquêter sur des vitesses de modèles rendant
  • Compiler:. Smarty compile modèles en code PHP dans les coulisses, en éliminant l'analyse d'exécution en temps de modèles
  • Performance: Smarty fonctionne extrêmement bien, en dépit de sa fonction vaste ensemble. La plupart des capacités de Smarty se trouvent dans des plugins qui sont chargés à la demande. Smarty est livré avec de nombreux outils de présentation, en minimisant votre code d'application et résultant en plus rapide, moins de développement d'applications / déploiement d'erreurs. Templates Smarty se compilées pour PHP fichiers interne (une fois), éliminant coûteuses analyses de fichiers de modèle et de tirer parti de la vitesse de PHP accélérateurs op-code.

Ce qui est nouveau dans cette version:

  • revenir sur des changements d'accès super-globales, et au lieu de compter sur USE_SUPER_GLOBALS pour la sécurité

Ce qui est nouveau dans la version 2.6.23:

  • backticks bande de {} mathématiques (équations de Mohrt)
  • erreur de lancer quand modèle existe, mais pas lisible (Mohrt)

Quoi de neuf dans la version 2.6.22:

  • Cette mise à jour corrige un problème rencontré avec le Smarty 2.6 .21 de presse et d'un bug du moteur PCRE en PHP 5.2. Méthode chaînage a été supprimé pour éviter le bug. Méthode chaînage réapparaîtra dans Smarty 3.

D'autres logiciels de développeur New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Commentaires à Smarty

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!