Affichage des résultats du sondage: Comment produisez-vous votre HTML ?

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

    108 52,17%
  • Avec echo

    45 21,74%
  • Avec un moteur de template

    81 39,13%
  • À ma manière

    47 22,71%
Sondage à choix multiple
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 6 12345 ... DernièreDernière
Affichage des résultats 1 à 20 sur 104
  1. #1
    Expert Confirmé Sénior
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    février 2010
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Âge : 27
    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 931
    Points : 8 401
    Points
    8 401

    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 :
    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 :
    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 :
    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
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 187
    Points : 7 646
    Points
    7 646

    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

  3. #3
    Expert Confirmé Sénior

    Avatar de FirePrawn
    Homme Profil pro
    Ingénieur réalisateur
    Inscrit en
    mars 2011
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur réalisateur
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2011
    Messages : 3 164
    Points : 23 643
    Points
    23 643

    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.[/SIZE]

  4. #4
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 691
    Points : 8 974
    Points
    8 974

    Par défaut

    PHP + HTML
    Moteur de template (twig parfois) et un autre spécifique qui manipule les vues comme des classes.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #5
    Responsable Développement Web


    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    22 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 22 563
    Points : 87 786
    Points
    87 786
    Billets dans le blog
    4

    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 Confirmé Sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    2 699
    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 : 2 699
    Points : 4 616
    Points
    4 616

    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
    - Réalisations
    - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.

  7. #7
    Invité régulier
    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
    Membre actif Avatar de yotsumi
    Profil pro
    Inscrit en
    mars 2005
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 25
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : mars 2005
    Messages : 190
    Points : 170
    Points
    170

    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.
    Studio-Dev | Mon blog technique | CV
    Si tu ne sais pas : demande, si tu sais : partage ! (© PCI)

  9. #9
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    1 633
    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 633
    Points : 2 122
    Points
    2 122

    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 :
    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.
    Soyez moderne: mysqli_connect() or throw Exception(mysqli_connect_error());

    PHP: un problème ? décrivez le avec ceci.

    Utilisez le bouton résolu!

  10. #10
    Expert Confirmé Sénior

    Avatar de FirePrawn
    Homme Profil pro
    Ingénieur réalisateur
    Inscrit en
    mars 2011
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur réalisateur
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2011
    Messages : 3 164
    Points : 23 643
    Points
    23 643

    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.[/SIZE]

  11. #11
    Invité de passage
    Inscrit en
    février 2011
    Messages
    3
    Détails du profil
    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
    Développeur Web
    Inscrit en
    juin 2010
    Messages
    18
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juin 2010
    Messages : 18
    Points : 35
    Points
    35

    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 Confirmé Sénior
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    janvier 2011
    Messages
    1 769
    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 : 1 769
    Points : 4 806
    Points
    4 806

    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.

  14. #14
    Nouveau Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2012
    Messages
    16
    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 : 16
    Points : 35
    Points
    35

    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
    Inscrit en
    juillet 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : juillet 2011
    Messages : 22
    Points : 35
    Points
    35

    Par défaut

    Curieux d'avoir pris une techno morte et dépassée pour exemple de moteur de template

  16. #16

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : novembre 2008
    Messages : 4
    Points : -2
    Points
    -2

    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 083
    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 083
    Points : 1 868
    Points
    1 868

    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
    Développeur informatique
    Inscrit en
    décembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2005
    Messages : 37
    Points : 47
    Points
    47

    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
    170
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 170
    Points : 114
    Points
    114

    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 :
    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
    Membre Expert Avatar de Squisqui
    Inscrit en
    décembre 2010
    Messages
    370
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 370
    Points : 1 048
    Points
    1 048

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •