Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 21h12   #1
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Par défaut [Qu'en pensez vous] HAML

hello,

Je vous présente ce projet HAML, un système de template aux objectifs forts intéressants :
Citation:
Haml and Sass have been used in Ruby for sometime to simplify templates (Haml) and make CSS more intelligent, flexible and manageable (Sass); now they come to PHP in PHamlP.
http://code.google.com/p/phamlp/

Exemple de code HTML, pour un portage spécifique à php :
Code :
1
2
3
4
5
6
7
8
 
.content {default tag is div. .class=<div class="class">, #id=<div id="id">}
    %p {%tag}
      %img(src="/images/logo.jpg" alt="Logo") {attributes are specified as normal}
      Haml is based on one primary principle. Markup should be beautiful.
    %ul.list
      - for($i=0; $i<3; $i++) {no need for ending semicolons or brackets for PHP code}
        %li= $i
Mais HAML propose d'aller plus loin en proposant de nouveaux outils pour le CSS, aka SASS
Citation:
Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows; keeping stylesheets powerful, manageable and DRY.
Exemple de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
$link_colour: #556b2f {defines a variable}
  $link_visited_colour: crimson {PHamlP supports SVG colours)
  $link_hover_colour: !link_colour + #333 {SassScript has colour operations}
 
  =replace-text($img, $x = 50%, $y = 50%) {= defines a mixin. Uses arguments and has defaults for some)
    text-indent: -9999em
    overflow: hidden
    background:
      image: image_url($img)
      repeat: no-repeat
      position: $x $y
 
  h1
    +replace-text(/images/logo.png) {+ use a mixin)
    font: {save repition with nesting of selectors}
     size: 120%
     weight: bold
 
  h2#overview
    +replace-text(/images/overview.png, 20%) {use the mixin with different arguments}
 
  .content
    margin: 1% 2%
    p
      padding: 1% 2%
    a
      color: $link_colour {assign a variable}
      &:hover {& is replaced with the parent selector}
        color: $link_hover_colour
      &:visited
        color: $link_visited_colour
 
  @import sass_import {import sass_import.sass and make variables and mixins defined in it available here. No extension means use the current extension.}
  @import scss_import.scss {import scss_import.scss and make variables and mixins defined in it available here. Need to specify .scss in a .sass file, and vice versa}
Qu'en pensez vous ?

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 08h51   #2
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Qu'en pensez vous ?
De prime abord je trouve la syntaxe absolument imbuvable.
Pour moi des fichiers de template doivent rester accessible à des graphistes/intégrateur avec le minimum d'effort (pour eux). Ici ca les obligent clairement à tous réapprendre.

Après l'idée d'intégrer du sass dans un moteur de template pourquoi pas, même si encore une fois je suis pas fan de la technique à la base.

Citation:
Envoyé par Haml
Haml is based on one primary principle. Markup should be beautiful.
J'ai ri , en voyant le code juste en dessous
grunk est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/08/2011, 10h03   #3
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Citation:
De prime abord je trouve la syntaxe absolument imbuvable.
Passé outre l'objectivité de ta remarque, si on retire les commentaires de l'exemple précédent, voici ce que cela donne :

Code :
1
2
3
4
5
6
7
8
 
.content
    %p 
      %img(src="/images/logo.jpg" alt="Logo")
      Haml is based on one primary principle. Markup should be beautiful.
    %ul.list
      - for($i=0; $i<3; $i++)
        %li= $i
La même chose en php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
  <div class="content">
    <p>
      <img src="/images/logo.jpg" alt="Logo" />
      Haml is based on one primary principle. Markup should be beautiful.
    </p>
    <ul class="list">
      <?php for($i=0; $i<3; $i++) { ?>
        <li><?php echo $i; ?></li>
      <?php } ?>
    </ul>
  </div>
Que l'on aime ou pas, le savant mélange d'indentation et de simplification allège le code.

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h08   #4
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Que l'on aime ou pas, le savant mélange d'indentation et de simplification allège le code.
Ca l'allège , on est bien d'accord , de là à dire que ça le rend plus beau et plus lisible , il y'a un pas que je ne franchirais pas

Mais effectivement , c'est une question d'habitude.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h54   #5
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
et du point de vue perfs ? Quel est ton avis ?
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 18h25   #6
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Citation:
Envoyé par Thes32 Voir le message
et du point de vue perfs ? Quel est ton avis ?
Ah je ne sais pas, il faudrait conduire un test.

Mais je ne m'inquiète pas trop de cela, à priori le code phaml est transformé en php, comme sait le faire twig donc.
Après si vraiment on veut de la rapidité, il faut faire du cache.

Moi ce qui me semble le plus manqué dans cette lib c'est l'héritage de template à la twig.
Après c'est peut être hors cadre de cette lib, peut être est ce à rajouté soit même via deux trois helpers bien intégré avec son controler.

Mais en tout cas je trouve l'approche très intéressante !

Aussi, ça n'à pas l'air trop pète bonbon à enrichir. Je dirais même simple

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h45.


 
 
 
 
Partenaires

Hébergement Web