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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 39
    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
    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 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    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 confirmé

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

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    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 confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    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 646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 646
    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 JavaScript • JavaScript et le DOM par la pratique • PHP 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 confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 422
    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 422
    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
    Nouveau candidat au 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
    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
    Membre chevronné

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Par défaut
    Citation Envoyé par FirePrawn Voir le message
    Et j'exècre particulièrement la méthode echo que je trouve immonde
    À mon avis, la méthode des "echo" se justifie lorsqu'on génère le code HTML depuis des objets PHP. Tant qu'on reste dans le code d'un template, le code PHP devrait être inclus dans le HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <article class="<?php echo $cssClasses; ?>"></article>
    Mais si on génère en POO par exemple un calendrier : un objet "HtmlCalendar" contenant des objets "HtmlDay" et d'autres objets "HtmlEvent" par exemple, chacun produisant des portions d'éléments et aucun n'ayant l'ensemble de la structure, alors un code à base de "echo" est plus lisible.

    Je précise qu'en parlant de template, je parle de la manière WordPress par exemple : de la syntaxe PHP appelant des API PHP. Concernant les "moteurs de templates" en surcouche de PHP mon avis rejoint celui de CyberDenix moins les insultes.

  9. #9
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Personnellement, j'ai rencontré et rencontre 2 problèmes avec l'utilisation d'echo. Pas de complétion, validation, coloration etc. du html/js dans les IDE, générant une perte de temps.
    D'autre part, tu te tapes forcément l'intégration si tu tombes sur des graphistes ne connaissant rien au PHP, HTML ou autre. Ne pas oublier aussi que certains graphistes ne s'occupent même pas de la source générée par leur Dreamweaver out autre et malheureusement on ne choisit pas toujours ses partenaires.

    J'ai toujours très peu utilisé de moteur de templates pour les raisons citées : surcouche, syntaxe, etc. et ai toujours trouvé cela inutilement lourd mais l'argument de grunk au sujet de la répartition des accès me semble intéressant même si finalement ça n'a rien à voir avec la définition d'un système de templates de manière générale, non ? (idem pour le cache ?)

    Ce qui me dérange aussi dans ce type d'outils (mais surtout au niveau des CMS en fait) et que quand une faille est trouvée, une "campagne de hack" est lancée. Tu dois donc toujours absolument être au fait des MAJ, etc. Le côté open source n'arrangeant évidemment rien.

  10. #10
    Membre éprouvé
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 511
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Ce qui me dérange aussi dans ce type d'outils (mais surtout au niveau des CMS en fait) et que quand une faille est trouvée, une "campagne de hack" est lancée. Tu dois donc toujours absolument être au fait des MAJ, etc. Le côté open source n'arrangeant évidemment rien.
    Ça c'est valable partout, c'est pas spécialement un argument contre ce genre d'outil, mais contre les outils utilisés de manière généralisée : quand un défaut est trouvé, si la nouvelle se répand c'est tous les utilisateurs qui sont impactés. Ça vaut aussi pour le moteur PHP que tu utilises (à moins que tu l'ai fais toi-même {^_^}).

    Utiliser un programme perso, c'est profiter du côté secret mais au dépend de la robustesse (tout seul on pense à moins de choses, et on a moins le temps). Utiliser des programmes génériques c'est l'inverse, profiter de la robustesse au détriment de l'intérêt que les crackers peuvent lui porter. Le tout est de savoir ce qu'on veut.
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  11. #11
    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
    Par défaut C#
    Ben moi je le produit avec des vues partielles et le moteur de template RAZOR pour C#

  12. #12
    Membre averti
    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
    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
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    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 149
    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.

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    55
    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 : 55
    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
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  16. #16
    Membre du 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
    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 Expert 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
    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.

  18. #18
    Membre éclairé
    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
    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.

  19. #19
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 70
    Par défaut
    Avec Razor (Asp.Net MVC)

  20. #20
    Membre actif
    Profil pro
    lead tec
    Inscrit en
    Octobre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : lead tec

    Informations forums :
    Inscription : Octobre 2011
    Messages : 16
    Par défaut
    Des webforms avec asp.net / C#

    Cela permet de bien séparé la partie présentation en html et le code objet dans le code begin.

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