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

Affichage des résultats du sondage: Quel système de template utilisez/utiliseriez - vous ?

Votants
147. Vous ne pouvez pas participer à ce sondage.
  • PHPLib

    42 28,57%
  • VTemplate

    5 3,40%
  • Smarty

    81 55,10%
  • ModeliXe

    10 6,80%
  • PowerTemplate

    1 0,68%
  • PHPTemplate

    5 3,40%
  • Xtemplates

    2 1,36%
  • EcTemplate

    0 0%
  • UltraTemplate

    0 0%
  • Itemplate

    0 0%
  • Quick Template

    1 0,68%
  • YATS

    0 0%
Bibliothèques et frameworks PHP Discussion :

[Templates] Quel système utilisez-vous ? Pourquoi ?


Sujet :

Bibliothèques et frameworks PHP

  1. #241
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par Théolude Voir le message
    C'est élégant mais ce n'est pas une solution de template (séparation fond / forme). Dans le cadre d'un travail avec une équipe graphique c'est moins simple à gérer. Dans le cadre d'une réutilisation du code également.
    Je ne suis pas entièrement d'accord
    Il y a bien une séparation fond/forme, au même titre qu'il y a une séparation fond/forme dans Zend_View ou encore dans les fichiers "compilés" des templates de Jelix par exemple. Un auteur de template ne manipule que ce que qu'on lui a fourni (le système étant de type PUSH). En revanche je suis d'accord que la logique de présentation étant écrite en php, elle est potentiellement très (trop pour certains) puissante. C'est le but!

    Le gros désavantage pour l'équipe graphique est (serait) l'utilisation de php, en fait juste la présence des directives <?php ?> qui brisent les documents html. Et ça, c'est un débat qui a déjà une 15aine d'années

  2. #242
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Je ne suis pas entièrement d'accord
    Il y a bien une séparation fond/forme
    Citation Envoyé par metagoto Voir le message
    En revanche je suis d'accord que la logique de présentation étant écrite en php, elle est potentiellement très (trop pour certains) puissante. C'est le but!
    Il n'y a pas une certaine contradiction là???
    Par ailleurs peut être aussi une certaine prétention à vouloir rendre les choses compliquées... le but n'est pas de "se friser" en faisant du code, mais bien d'être efficace et de proposer des produits maintenables et lisibles facilement par un quidam étranger (développeur extérieur) qui découvre le code.

    Citation Envoyé par metagoto Voir le message
    Le gros désavantage pour l'équipe graphique est (serait) l'utilisation de php, en fait juste la présence des directives <?php ?> qui brisent les documents html. Et ça, c'est un débat qui a déjà une 15aine d'années
    Un vieux débat ne veut pas forcément dire un débat obsolète...

    My two pences, Théolude.

  3. #243
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par Théolude Voir le message
    Il n'y a pas une certaine contradiction là???
    Par ailleurs peut être aussi une certaine prétention à vouloir rendre les choses compliquées... le but n'est pas de "se friser" en faisant du code, mais bien d'être efficace et de proposer des produits maintenables et lisibles facilement par un quidam étranger (développeur extérieur) qui découvre le code.



    Un vieux débat ne veut pas forcément dire un débat obsolète...

    My two pences, Théolude.
    Je parle de logique de présentation, et non pas de logique métier. Par exemple <?php foreach(): ?> plutôt que {foreach} pour afficher quelque chose en boucle.

    La maintenabilité n'est pas plus mauvaise qu'un autre système si on considère que tout le processing des templates est assuré et maintenu par le php Group et les développeurs de php eux même! Je n'ai pas besoins de m'assurer que la fonctionnalité "foreach" n'est pas bugguée par exemple.
    Pour la complexité, je pense sincèrement qu'un système comme Zend_View est largement moins complexe que Smarty. Ca c'est du point de vue du développeur de la librairie. Le graphiste lui, il sera obligé d'apprendre un nouveau langage quoi qu'il arrive. Y a peut être même des chances qu'il connaisse déjà un peu php le saligaud (oui, il aurait un blog sous Wordpress ? )

    Quant à la pérennité, php a encore de beaux jours devant lui. Nul besoins de se soucier de ce qu'il adviendra du langage utilisé dans les templates.

    Alors certes, un template php n'est pas un document html valide (au sens conforme aux spécifications html). Mais pour être conforme, il faut en arriver à quelque chose comme XSL: c'est pas trop user-friendly et ça tue toutes velléités wysiwyg.

  4. #244
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Alors certes, un template php n'est pas un document html valide (au sens conforme aux spécifications html). Mais pour être conforme, il faut en arriver à quelque chose comme XSL: c'est pas trop user-friendly et ça tue toutes velléités wysiwyg.
    Tu restes dans la logique de Smarty ou des Smarty Like.
    C'est justement à l'opposé de la démarche des moteurs de templates de type ModeliXe qui :
    1. N'intégrent aucune logique ni de métier ni de présentation dans leurs templates, mais définissent uniquement des "objets" HTML manipulables ensuite par les méthodes de la classe du moteur. Ainsi une boucle c'est simplement dans le cas de modeliXe, un "objet" html de type bloc qu'on répéte sur lui même $obj_modelixe -> MxBloc('path.du.bloc.dans.le.template', 'loop') et ce dans le cadre d'une boucle PHP.

    2. Posséde des balises normalisées xhtml, directement interprétable et lisible par un intégrateur HTML par exemple ; qui plus est un plug in développé pour DreamWeaver permet de les éditer !!!! ModeliXe n'est pas le seul dans ce cas, d'autres moteurs de templates ont emprunté la même voie qui pour moi est la plus "logique" et la plus "propre". Un template est avant tout un fichier 100% XHTML qui intégre tous les éléments à présenter après traitement.

    En même temps ModeliXe ou les moteurs similaires ne sont pas des processeurs XSLT, ils ne sont que des interfaces de manipulations de documents XHTML mais ils s'appuient sur PHP et ils sont utilisés via PHP ... et donc disposent de toutes les fonctionnalités PHP (appel à des BDD, gestion de fichiers, librairies diverses, etc.).

    Bref c'est plus simple et plus complet qu'un processeur XSLT dans le cadre de la génération de pages HTML, c'est plus propre et plus abouti à mon sens que des moteurs de type Smarty ou équivalent. Enfin la question des performances aujourd'hui (qui a pu handicapé ModeliXe face à Smarty) est moins onéreuse à résoudre par des moyens techniques que par des moyens logiciels (maintenabilité, lisibilité, temps de développement sous ModeliXe face à Smarty).

    Théo

  5. #245
    mon_nom_est_personne
    Invité(e)
    Par défaut
    Je vai casser un peu cette discution flamboillante pour le banal post "j'ai vote et je vais dire pourquoi". J'ai ainsi vote smarty. Ca fait plusieurs annees que j'utilise l'animal (je l'ai meme fait adopte par mon actuel employeur).
    Ce que j'aime:
    - Le systeme de filtre: je peu enfin avoir un site qui sort des rendues dans plusieurs encodage (et je parle de choses exotiques) et sur plusieurs plateformes.
    - Le cote "non programatique" des templates. Pour le dev c'est sur travailler avec des objets etc.. c'est plus logique et productif. Mais un projet web c'est avant tout une histoire d'equipe et donc, le cote un peu a la main, est je trouve bien quand on travaille avec des designeurs, car ca les mets en valeur ("le dossier template c'est mon terrain de jeu") et reduit le temps de travail du dev.
    - le fait que je peu genere autre chose que des pages html ou xml :ccool.

    Apres j'ai pas vraiment eu le temps de tester d'autre j'ai essayer HAML mais c'etait pas excellent.

  6. #246
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par Théolude Voir le message
    C'est justement à l'opposé de la démarche des moteurs de templates de type ModeliXe qui :
    1. N'intégrent aucune logique ni de métier ni de présentation dans leurs templates, mais définissent uniquement des "objets" HTML manipulables ensuite par les méthodes de la classe du moteur. Ainsi une boucle c'est simplement dans le cas de modeliXe, un "objet" html de type bloc qu'on répéte sur lui même $obj_modelixe -> MxBloc('path.du.bloc.dans.le.template', 'loop') et ce dans le cadre d'une boucle PHP.
    L'idée est louable, mais cet aspect purement déclaratif dans les templates a pour conséquence, si je comprends bien, de reporter ailleurs le mécanisme qui lie les données avec leurs "réceptacles" dans les templates. Et donc dans ce cas là, ce qu'on a appelé "la logique de présentation" dans nos précédents échanges doit être déroulée en "dur" (la boucle php)? Quelque part, le programmeur qui en amont s'est déjà chargé de construire ses structures de données, n'en a pas fini pour autant et est tributaire de ce que le graphiste lui fourni car il reste encore à coder toute la partie qui fait la liaison avec les identifiants dans les templates (la boucle?)

    Je préfère un système qui est à sens unique au niveau dépendance du code: le programmeur construit les données et le graphiste s'en sert pour les présenter. (en gros, la vue présente le model). Seul le graphiste est tributaire du programmeur au niveau du code.

  7. #247
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Je préfère un système qui est à sens unique au niveau dépendance du code: le programmeur construit les données et le graphiste s'en sert pour les présenter. (en gros, la vue présente le model). Seul le graphiste est tributaire du programmeur au niveau du code.
    Je connais très peu de situation où le graphiste "fait ce qu'il veut" avec les données fournies par le programme. En général et de ce que je connais, on c'est mis d'accord au préalable sur une interface, le graphiste fait l'habillage et prévoit les "espaces" pour recevoir des informations, le développeur fait le programme qui va aller "remplir" ces espaces.

    C'est dans cet esprit qu'on a écrit ModeliXe. Pour moi aujourd'hui le modèle que tu présentes ait difficilement concevable dans les faits. Très souvent les contraintes data impactent sur la forme ; et non le contraire. C'est en faisant ce constat et pour améliorer la collaboration et la réutilisabilité du code que l'idée template m'ait venu.

    Peux tu présenter un cas concret de "push" comme tu l'as présenté?

  8. #248
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    ModeliXe est de type push si je comprends bien: les données présentées par les templates sont construites en amont. Les templates ne peuvent pas déclancher une construction non préallablement prévue (ce qui serait dans ce cas de type pull). Par construction, j'entends rapatrier des données du model.
    Je pense que ce doc http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf est une référence quant aux définitions des systèmes de templates (l'auteur étant le père du générateur de parser ANTLR)

    Je dirais que la plupart des systèmes populaires sont de type push.

    Le "sens unique" dont je parlais se manifeste par exemple dans ce bout de code (genre Zend_View):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($this->dogs as $dog)?>
      <tr><td><?=$dog->name?></tr></td>
    <?php endforeach?>
    Le "programmeur" a construit $dogs en amont et l'a passé au moteur de templates. Ensuite, il n'est plus dépendant des choix du graphistes pour que la template soit effectivement rendue. Il n'y a pas de phase intermédiaire qui consisterait à "mapper" les entités (ici dog) dans leurs receptacles respectifs. C'est l'avantage de l'aspect impératif parceque la boucle est déjà exprimée dans la template (sans même parler que c'est évaluable par php directement).
    En XSLT, ça serait pareil, le programmeur construit le document xml et ensuite il n'a pas à s'immisser entre le xml et la transformation xsl.
    Dans ModeliXe, la partie métier construirait $dogs, le graphisque lui écrirait sa templates avec ses ID de block (par exemple) et il faudrait ensuite que le programmeur fasse le mapping en fonction de l'ID et en tenant compte du type de block (ici une boucle). Je me trompe peut être ?

  9. #249
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Le "sens unique" dont je parlais se manifeste par exemple dans ce bout de code (genre Zend_View):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($this->dogs as $dog)?>
      <tr><td><?=$dog->name?></tr></td>
    <?php endforeach?>
    Le "programmeur" a construit $dogs en amont et l'a passé au moteur de templates. Ensuite, il n'est plus dépendant des choix du graphistes pour que la template soit effectivement rendue. Il n'y a pas de phase intermédiaire qui consisterait à "mapper" les entités (ici dog) dans leurs receptacles respectifs. C'est l'avantage de l'aspect impératif parceque la boucle est déjà exprimée dans la template (sans même parler que c'est évaluable par php directement).
    En XSLT, ça serait pareil, le programmeur construit le document xml et ensuite il n'a pas à s'immisser entre le xml et la transformation xsl.
    Dans ModeliXe, la partie métier construirait $dogs, le graphisque lui écrirait sa templates avec ses ID de block (par exemple) et il faudrait ensuite que le programmeur fasse le mapping en fonction de l'ID et en tenant compte du type de block (ici une boucle). Je me trompe peut être ?
    Très franchement je ne vois pas ce que ton exemple a de miraculeux. Le graphiste est beaucoup plus embêté pour travailler sur la forme de ta boucle, et quoiqu'il en soit et malgré ce que tu dis, le graphiste ne peut pas improviser une autre remontée de données ailleurs dans le template. Ce qui reste éventuellement faisable sur ModeliXe, où il n'a qu'à déplacer le code HTML (plus facilement lisible AMHA que le code que tu proposes).

    Le fait que la boucle est déjà exprimé dans le template rend selon moi les choses justement plus difficiles, tu n'as pas séparé le fond de la forme. La comparaison avec XSL est erronée, le fichier XLS contient déjà des morceaux du fichier final et intégre des aspect logiciels (boucle, condition, sélection de noeud, etc.), un peu à l'image de ta boucle... mais ce n'est justement pas selon moi un système de template. A la limite je m'en servirai pour créer différents templates (XHTML, XML, etc.) selon le type de client, qu'ensuite je manipulerai avec modeliXe pour le remplir (l'instancier en quelque sorte).

  10. #250
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Oui, XSLT est fonctionnel, donc pas déclaratif et est à l'image de la boucle, ce que j'ai dit.

    tu n'as pas séparé le fond de la forme.
    On revient au point de départ

    Le miracle de mon exemple provient du fait que le programmeur n'a pas à dérouler des boucles pour instancier et rendre la template (et je parle du programmeur utilisateur, pas de l'auteur du système de template)
    Donc, en plus de la phase de processing écrite en php inhérente au moteur de template, il faut programmer "le remplissage" et la logique (de présentation).
    C'est un choix qui me paraît bien trop lourd, et là on retombe sur ma première intervention: le moteur de php est déjà un processeur de template.

  11. #251
    Membre averti Avatar de ner0lph
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 277
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Le "sens unique" dont je parlais se manifeste par exemple dans ce bout de code (genre Zend_View):

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($this->dogs as $dog)?>
      <tr><td><?=$dog->name?></tr></td>
    <?php endforeach?>
    Hmm. Et là, tu obliges le graphiste à utiliser un logiciel compatible PHP (déjà qu'il faut que cet éditeur le soit avec HTML4 ou 5) si ce n'est pas un éditeur de texte, alors qu'une syntaxe similaire à celle ci-dessous est plus facilement "assimilable" (et est vraiment du HTML) :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <table>
      <!-- BEGIN nomboucle -->
      <tr><td>{variable1}</tr><td>{variable2}</tr></td>
      <!-- END nomboucle -->
    </table>

    Bien sûr, c'est mon avis.

  12. #252
    Membre averti

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 640
    Points : 408
    Points
    408
    Par défaut
    Dans Dwoo, j'apprécie particulièrement la fonctionnalité d'héritage de template, qui permet de redéfinir un ou plusieurs blocs. Cela permet de résoudre plusieurs problèmes de façon élégante...

  13. #253
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par Neuromancien2 Voir le message
    Dans Dwoo, j'apprécie particulièrement la fonctionnalité d'héritage de template, qui permet de redéfinir un ou plusieurs blocs. Cela permet de résoudre plusieurs problèmes de façon élégante...
    Je ne connais pas DWOO et je vais aller voir comment il gère cette notion d'héritage.

    Ce que je peux ajouter c'est que dans ModeliXe (bien que ce soit très souvent mal utilisé) il y a une notion équivalente, ou on peut modifier en vol et pour l'occurence d'une boucle le contenu d'un bloc par celui d'un autre bloc, d'un autre objet modelixe, ou un autre template, voir un string crée par le programme (opérateur "replace"). On peut aussi modifier de manière définitive pour toutes les occurences d'une boucle (opérateur "modify"), et il y a l'équivalent pour les suppressions ("delete" et "reset").

    Théo

    NB: Effectivement la notion d'héritage telle qu'elle est présentée est assez sexy, j'aime bien.

  14. #254
    Membre habitué Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Points : 156
    Points
    156
    Par défaut
    En fait, j'aime bien l'idée de metagoto.

    Je développe du soft en php.
    Ce que j'aime bien au template, c'est que ça peut servir à personnaliser l'affichage. Imaginons que quelqu'un fasse un template différent pour utiliser avec mon soft. Donc lorsque le soft évolue, si il manque des fichiers templates, l'affichage n'est pas possible... et donc il faut mettre à jour les templates de toute facon...
    Vous voyez ce que je veux dire?

    Maintenant je ne vois pas de solution miracle pour ce problème, à part que un template n'est compatible qu'avec une certaine version du soft. Biensûr on peut s'arranger dans le développement du soft pour que le template ne doive être remis à jour que lors des nouvelles versions majeurs.

    Des idées là dessus?

    Greg

  15. #255
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 130
    Points
    9 130
    Par défaut
    pour ce qui est de la séparation du travail d'un graphiste et du développeur php
    phpTal http://phptal.org/ apporte une solution élégante.

    le principe de base est simple
    on n'ajoute au code html xhtml ou html5 un namespace qui définit des attribut supplémentaire sur les balises
    et ce tout en gardant les valeur fournies par le designer
    un exemple simple sur un un lien. le designer dans la page mets un lien vers une autre page cela lui permet de concevoir le site et le le rendre interactif même s'il n'est pas relié au données.
    disons que j'ai une liste d'objet et que le lien m'ouvre un formulaire de modification d'un des élément de la liste. le designer va me fournir quelque chose comme
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="modifObject.html">Modifier l'objet</a>
    avec éventuellement des attributs des id de la mise en forme etc.
    pour que cela fonctionne avec l'appli php il faut que l'attribut href dépende du contenu des variable php de même que le texte dans la balise a

    en utilisant un namespace on ne touche pas à la sémantique du html qui va rester la même. mais on va l'enrichir d'éléments qui pourront être utilisé par le moteur de template.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="modifObject.html" 
          tal:attributes="href object/getUrl" 
          tal:content="object/getTitle">Modifier l'objet</a>
    object étant l'objet php contenant les données.

    l'avantage de cette solution est que l'enrichissement est non destructeur
    ainsi la page html peut toujours être utilisé dans un site statique pour continuer à faire évoluer le design

    cas simple me direz-vous alors voici la chose sur un tableau d'objet
    supprimez dans ce code et vous aurez ce que fourni le designer
    un tableau avec plusieurs lignes d'exemple.
    la solution consiste à ajouter tal:replace="" sur toute les lignes sauf une.
    cela indique au moteur de template qu'il doit remplacer ces lignes par rien
    et sur une ligne utiliser la répétition sur le tableau d'objet
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        <table>
          <thead>
            <tr>
              <th>Date de création</th>
              <th>Objet du délit</th>
            </tr>
          </thead>
          <tr tal:repeat="object myObjectList">
            <td tal:content="object/getCreationDate">06/05/2010</td>
            <td><a href="modifObject.html"
                 tal:attributes="href object/getUrl"
                 tal:content="object/getTitle">Modifier l'objet 1</a></td>
          </tr>
          <tr tal:replace="">
            <td>05/05/2010</td>
            <td><a href="modifObject.html">Modifier l'objet 2</a></td>
          </tr>
          <tr tal:replace="">
            <td>04/05/2010</td>
            <td><a href="modifObject.html">Modifier l'objet 3</a></td>
          </tr>
        </table>

    TAL est un système de template qui existe en jsp et asp il n'est pas propre à php

    tout n'est pas parfait je déplore par exemple l'impossibilité spécifier et chaîner des filtre sur le texte sur un tal:content par exemple il serait intéressant de pouvoir faire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    tal:content="value>toLowwer>upFirst"
    qui prend la valeur de value la réduit en minuscule et lui met la première lettre en majuscule.
    il n'y pas de syntaxe aussi simple pour y parvenir le | est utilisé pour des valeur alternative valeur 1 ou à défaut valeur 2

    A+JYT

  16. #256
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 65
    Points : 98
    Points
    98
    Par défaut
    Perso on est passé à Twig dans notre boîte avec bonheur !

  17. #257
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    Perso je ne connais pas, ModeliXe commence à vieillir, tu peux m'en dire un peu plus sur Twig ?

  18. #258
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 65
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par Théolude Voir le message
    Perso je ne connais pas, ModeliXe commence à vieillir, tu peux m'en dire un peu plus sur Twig ?
    Il s'agit d'un moteur créé par Fabien Potencier (Symfony) : http://www.twig-project.org/.

    On hésitait entre Smarty 3 et Twig. La légereté et la modernité (d'un point de vue architecture) du dernier l'a emporté.

  19. #259
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 186
    Points : 134
    Points
    134
    Par défaut
    A priori je n'aime pas mais alors pas du tout, c'est le contraire selon moi de la philosophie template, dans la droite ligne de l'hérésie ignitiée par Smarty...

    Un template ça se doit de ne pas comporter une seule règle syntaxique, d'avoir un balisage normé XML pour être intégré de manière invisible dans des documents XHTML valides, et de permettre à toutes les personnes travaillant sur un projet (développeur et graphistes) de se retrouver à l'aise avec leurs outils sans que l'un déborde sur le travail de l'autre.

    Le produit à l'air propre, bien conçu dans son architecture, mais son utilisation et sa syntaxe me parait lourdingue à souhait. Pourquoi couper les cheveux en 4 quand on peut les couper en 185 ?

    My two pences...

  20. #260
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 65
    Points : 98
    Points
    98
    Par défaut
    Oui enfin c'est ta définition de templates mais ne prend pas tes considérations philosophiques pour des vérités absolues non plus

    Je ne choisis pas mon template en fonction d'un seul critère mais sur un ensemble de critères, notamment : lisibilité, performance, extensibilité, souplesse... Le fait d'être compatible XHTML n'est en rien une qualité essentielle à mes yeux.

    Et perso niveau syntaxe lourdingue j'ai vu pire quand même (avis perso)... mais en tant que papa de Modelixe on ne t'en voudra pas de défendre ton bébé

Discussions similaires

  1. Quel EDI utilisez-vous en 2012 pour le développement Web ? Pourquoi ?
    Par Community Management dans le forum Outils
    Réponses: 69
    Dernier message: 31/08/2016, 11h12
  2. Quels Frameworks utilisez-vous ? et pourquoi ?
    Par snipes dans le forum Android
    Réponses: 5
    Dernier message: 22/02/2013, 16h03
  3. Quel outil de supervision système utilisez-vous ?
    Par cyberzoide dans le forum Linux
    Réponses: 0
    Dernier message: 08/02/2013, 12h09
  4. Réponses: 8
    Dernier message: 10/11/2006, 20h33

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