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: Comment produisez-vous votre HTML ?

Votants
208. Vous ne pouvez pas participer à ce sondage.
  • En mélangeant le PHP et le HTML

    109 52,40%
  • Avec echo

    45 21,63%
  • Avec un moteur de template

    81 38,94%
  • À ma manière

    47 22,60%
Sondage à choix multiple
Langage PHP Discussion :

Comment produisez-vous votre HTML ?


Sujet :

Langage PHP

  1. #1
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut Comment produisez-vous votre HTML ?
    Bonjour à tous,

    Il est de notoriété publique que le principal usage de PHP soit la création dynamique de flux HTML. Mais bien qu'il existe diverses façons de produire et d'afficher ce flux de données, il n'y a pas vraiment de recommandations en la matière, chacun est libre de faire à sa convenance.

    Je vous propose donc un petit sondage: quelle méthode employez-vous pour produire votre HTML ?

    Traditionnellement, on peut tout simplement décrire son HTML et y insérer des balises spéciales là où on veut du dynamisme. Cette méthode était connue sous le nom de phtml et est d'ailleurs supportée nativement par Apache au même tittre qu'un script PHP classique:

    En Mélangeant le PHP et le HTML
    Code PHP : 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
    23
    24
    25
    26
    <?php
    $user = "Jean";
    $messages = array(
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
        'Cras sit amet mi quis mauris varius dignissim id et ipsum.',
        'Quisque id lacus lorem.'
    );
    ?>
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>Mes messages</title>
    </head>
    <body>
        <? if (!isset($user)): ?>
        <p class="error">Veuillez vous connecter</p>
        <? else: ?>
        <h2>Bienvenue <?=$user?></h2>
        <span>Vous avez <?=count($messages)?> messages en attente</span>
        <? foreach ($messages as $message): ?>
        <p class="message"><?=$message?></p>
        <? endforeach ?>
        <? endif ?>
    </body>
    </html>

    Dans cet exemple, nous nous sommes servi de la syntaxe alternative ainsi que la directive short_open_tag que je trouve beaucoup plus claire et naturelle que l'imbrication d'accolades ouvrantes/fermantes.

    On peut également recourir à la structure echo:

    Avec echo
    Code PHP : 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
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $user = "Jean";
    $messages = array(
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
        'Cras sit amet mi quis mauris varius dignissim id et ipsum.',
        'Quisque id lacus lorem.'
    );
     
    echo '<!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>Mes messages</title>
    </head>
    <body>';
     
    if (!isset($user)) {
        echo '<p class="error">Veuillez vous connecter</p>';
    }
    else {
        echo '<h2>Bienvenue ' . $user . '</h2>',
             '<span>Vous avez ' . count($messages) . ' messages en attente</span>';
     
        foreach ($messages as $message) {
            echo '<p class="message">' . $message . '</p>';
        }
    }
     
    echo '</body>
    </html>';

    Ou encore, on peut utiliser un moteur de template tel que Smarty ou phpBB pour ne citer que les plus connus:

    Avec Smarty
    Code PHP : 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
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>Mes messages</title>
    </head>
    <body>
        {if $user}
        <p class="error">Veuillez vous connecter</p>
        {else}
        <h2>Bienvenue {$user}</h2>
        <span>Vous avez {$messages|@count} messages en attente</span>
        {foreach ($messages as $message)}
        <p class="message">{$message}</p>
        {/foreach}
        {/if}
    </body>
    </html>

    Et vous ?

    Laquelle de ces techniques utilisez-vous et pourquoi ?
    Utilisez-vous un moteur template et lequel ?
    Avez-vous une tout autre technique pour produire votre flux ?

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Avec un moteur de template , en l'occurence Twig (sans symfony).

    Ça le gros avantage d’empêcher les intégrateurs/graphiste de venir bidouiller du code qu'ils n'ont en principe pas à toucher (ils se retrouvent avec un "langage" inconnue et du coup ne tente pas de modifier).

    J'avais fait un passage sur smarty2 mais twig m'a ensuite très vite conquis par sa synthaxe et son code source.

    Après quand j'ai le choix j'essai de plutôt utiliser des fichiers html avec quelques <?php echo $mavar ?> pour le gain de performance comparé à tout un moteur de template.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    J'utilise le PHP et le HTML mélangé personnellement.

    Et j'exècre particulièrement la méthode echo que je trouve immonde
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    PHP + HTML
    Moteur de template (twig parfois) et un autre spécifique qui manipule les vues comme des classes.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    J'apprécie aussi la syntaxe alternative pour les structures de contrôle que je trouve aussi plus claire.

    Sinon, même si la production de HTML dépend des cas traités et des types de projets, j'essaye au maximum d'utiliser la Syntaxe Heredoc.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Par défaut et de préférence, en mélangeant PHP+HTML.

    Mais cela dépend du contexte, certaines fonctions ou classes peuvent renvoyer un bloc de code par un echo. Ce sont des critères comme la clarté du code, la facilité de mise en place, l'évolutivité et la maintenance qui impliquent le choix final.

    Sinon, je me suis intéressé un peu à la syntaxe Heredoc, mais je trouve qu'il y a trop de contraintes et de restrictions pour généraliser facilement son usage. Je la garde donc plutôt en réserve pour les cas où son emploi est manifestement plus pratique que la syntaxe classique.

    Les short open tags peuvent provoquer des confusions avec d'éventuelles balises xml et dépendent de la configuration du serveur donc j'évite de les utiliser. Avec php 5.4 "<?=" sera toujours disponible mais bon ce ne sera pas ma priorité.

    Quant à la syntaxe alternative, je comprend pas l'intérêt que certains y accordent. Certes on peut trouver cela plus clair (et encore ça se discute), mais pour moi ce qui ne se discute pas c'est que cela rend évidemment totalement inopérant l'équilibrage des accolades dans mon éditeur favori Nan là pour moi c'est vraiment trop rédhibitoire

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2009
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par FirePrawn Voir le message
    J'utilise le PHP et le HTML mélangé personnellement.

    Et j'exècre particulièrement la méthode echo que je trouve immonde
    Dans un sens ou dans l'autre, c'est immonde de mélanger le PHP et l'HTML



    J'ai voté moteur de template : XML/XSLT.

    Avantages :
    • Rapide
    • Peut être utilisé avec d'autres langages que PHP
    • En natif, compresse ou indente correctement le code généré
    • Le code généré est obligatoirement propre (du XML, donc au choix : XHTML ou XHTML5)


    Inconvénients :
    • Pour ceux qui utilisent Dreamweaver, cet éditeur n'est pas foutu de gérer correctement les balises XSL (notamment les templates multiples, les includes,...)
    • Je ne vois pas d'autres inconvénients, j'utilise Eclipse, pas DW

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Par défaut et de préférence, en mélangeant PHP+HTML.

    Mais cela dépend du contexte, certaines fonctions ou classes peuvent renvoyer un bloc de code par un echo. Ce sont des critères comme la clarté du code, la facilité de mise en place, l'évolutivité et la maintenance qui impliquent le choix final.
    Si la clarté du code t'es importante, tu devrais privilégier une séparation stricte des couches.

    La pire idée serait de mixer plusieurs des méthodes présentées par cet article...
    Soit toutes les vues sont dans des templates (twig/smarty...), soit toutes les vues sont dans des fichiers HTML/PHP (dans lequel tu n'injecte que des données, jamais de HTML, à la SF1 par ex), soit tu fais des echo à l'arrache.

  9. #9
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Et j'exècre particulièrement la méthode echo que je trouve immonde
    je fais des écho et ça marche.

    Et ya qu'en php ou on se permet de faire des choses comme ça (a ma connaissance).

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php // pour le colorateur
     
    // 
    function tell($toto){
    print( $toto );
    ?> fait du php<?php
    }
     
     
     
    // méthode immonde ????
    function tell($toto){
    echo $toto, ' fait du php';
    }

    moi j'ai vite choisi.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  10. #10
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Chacun son choix.

    Comme je l'ai dit, c'est que je pense personnellement, j'ai pas dit que la méthode était immonde, mais que POUR MOI elle l'était
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut C#
    Ben moi je le produit avec des vues partielles et le moteur de template RAZOR pour C#

  12. #12
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 19
    Points : 37
    Points
    37
    Par défaut
    Avec un moteur de templates en PHP pur:
    http://www.massassi.com/php/articles/template_engines/

    In short, the point of template engines should be to separate your business logic from your presentation logic, not separate your PHP code from your HTML code.
    J'utilise aussi CakePHP, donc templates en PHP.

  13. #13
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    J'ai jamais passé la marche vers les templates. Enfin si une fois vers Smarty mais j'ai eu plein de soucis de choses que j'arrivais pas à faire et j'ai pas eu le courage d'aller au delà de la documentation...
    Donc du coup je code en MVC avec une vue mélangeant HTML et PHP.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  14. #14
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2012
    Messages : 51
    Points : 186
    Points
    186
    Par défaut
    Pour ma part j'évite absolument le echo (je le faisais à une époque, mais c'est trop peu lisible à mon goût, surtout qu'on perd la coloration syntaxique et la validation html de l'IDE).

    Donc mélange de php ou HTML pour les pages web assez simple, ou moteur de template (Twig dans mon cas, mais smarty a l'air très bien aussi) pour les projets plus consistants.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 22
    Points : 30
    Points
    30
    Par défaut
    Curieux d'avoir pris une techno morte et dépassée pour exemple de moteur de template

  16. #16
    Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Pour ma part j'utilise des templates + moteur maison sous forme de class.

    Le melange de PHP & HTML est une chose que tu fais quand tu es newbie dans le dev et de plus cela est imbuvable le melange et pour retrouver ces petits c'est pas facile.

  17. #17
    Membre chevronné Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 1 085
    Points : 1 976
    Points
    1 976
    Par défaut
    Si je suis ou serais seul sur le projet (cas d'un dev perso par ex.), j'utilise PHP+HTML en majorité même si j'ai déjà fait un ou deux trucs avec smarty car j'avais fait faire les graphismes et mise en page par quelqu'un d'autre.

    Si je n'ai pas la garantie de maintenir moi-même ou qu'il s'agit d'un dev collaboratif, je préfère utiliser un moteur comme smarty.
    Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
    - Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...

  18. #18
    xwz
    xwz est déconnecté
    Membre du Club
    Profil pro
    Analyste programmeur
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Points : 63
    Points
    63
    Par défaut
    Personnellement j'utilise un système proche du framework zend. A savoir un fichier .php pour chaque vues de mes modules que je récupère avec un include dans la méthode de génération du code html. Je récupére le tout avec des ob_start() et je n'affiche le code final qu'après la génération complète de ma page. Le principal avantage, c'est qu'à n'importe quel moment n'importe quel module peut balancer un header, référencer de nouveaux fichiers CSS et javascript. Ca ressemble donc plus à la méthode du echo mais avec l'affichage complètement séparé du traitement des données.

  19. #19
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 165
    Points
    165
    Par défaut
    Vu comme c'est présenté dans l'exemple c'est sûr que c'est pas joli, alors que comme ci-dessous je trouve ça correcte ca ne me gène pas :

    Code : 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
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $user = "Jean";
    $messages = array(
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
        'Cras sit amet mi quis mauris varius dignissim id et ipsum.',
        'Quisque id lacus lorem.'
    );
    ?> 
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>Mes messages</title>
    </head>
    <body>
     <?php if (!isset($user)) : ?>
        <p class="error">Veuillez vous connecter</p>';
    <?php else : ?>
        <h2>Bienvenue <?=$user ?></h2>
        <span>Vous avez <?= count($messages) ?> messages en attente</span>
     
       <?php foreach ($messages as $message) : ?>
            <p class="message"> <?= $message ?> </p>;
        <?php endforeach; ?>
    <?php endif; ?>
     
    </body>
    </html>
    Je trouve ça beaucoup plus lisible, pas vous ?

  20. #20
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 555
    Points : 1 597
    Points
    1 597
    Par défaut
    N'ayant fait que des petits projets (à titre personnel ou études) sur des plateformes très restreintes, le mélange PHP + HTML m'a paru le plus adapté à mes besoins.

    Le code PHP et HTML restant tout de même le plus séparé possible pour garder des pages HTML le plus claires possible.

Discussions similaires

  1. Comment écrivez-vous votre code (X)HTML ?
    Par Bovino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 13/11/2012, 13h26
  2. Réponses: 1
    Dernier message: 03/12/2009, 11h09
  3. [Tools] Comment faites-vous votre veille techno ?
    Par rad_hass dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 05/06/2008, 16h27
  4. Réponses: 2
    Dernier message: 09/05/2008, 09h43
  5. Réponses: 19
    Dernier message: 14/08/2003, 11h37

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