Page 1 sur 1

mélange de php et html

Posté : 28 sept. 2007, 14:39
par d0m
bonjour,

J'ai à afficher du code html sous certaines conditions. Ces conditions sont vérifiées en php.
Pour l'instant j'utilise ce procédé :
tout le code html est écrit dans une chaine php que j'affiche ensuite avec un echo
<?php
if($condition){
  echo '<BR>';  
}
?>
j'ai vu dans certains scripts l'écriture suivante :
<?php
if($condition){ ?>
  <BR> 
<?php
} ?>
Cette écriture est elle réellement correcte? est elle recommendée ou au contraire à éviter?

Posté : 28 sept. 2007, 14:45
par fab
Elle est correcte mais devient difficilement lisible car le HTML et le PHP prennent de la taille, il est plus simple de se reperer avec la syntaxe suivante :
<?php if($condition) : ?>
<table>
<thead>
...
<?php endif; ?>
avec cette syntaxe si tu veux introduire un else c'est
<?php if($condition) : ?>
...
<?php else: ?>
...
<?php endif; ?>

Posté : 28 sept. 2007, 14:49
par d0m
merci c'est encore mieux que je ne le pensais

Posté : 28 sept. 2007, 14:51
par fab
Pour info les templates du framework symfony est basé sur l'utilisation de ces 2 syntaxes même si il est plus pratique d'utiliser la deuxième.
La page de doc est ici :p
http://fr.php.net/manual/fr/control-str ... syntax.php

Posté : 28 sept. 2007, 14:53
par Ryle
bah le if/endif n'a pas plus ou moins de lisibilité qu'une paire d'accolade selon moi, le tout étant de toujours bien indenter :
<?php if ($condition) { ?> 
  <table> 
    <thead> 
  ... 
<?php } else { ?> 
  ... 
<?php } ?>
Quand à préférer le code html ou le code php, le serveur ne va pas interpréter les parties du codes qui ne sont pas délimitées par les <?php ?>, et ainsi ira "plus vite" si tu es dans du code html, que si tu fais un echo en php :)

Maintenant c'est franchement négligeable et personnellement, j'ai pas de règle en la matière, c'est en fonction de la longueur du code html que j'ai à afficher et de la lisibilité de celui-ci. C'est parfois plus pratique de le garder dans un echo et de ne pas s'embêter à gerer les basules entre html et php, et c'est parfois plus agréable d'avoir du code html avec sa coloration syntaxique qu'une chaine monochrome... bref, c'est surtout question de feeling ;)

Posté : 28 sept. 2007, 15:19
par d0m
c'est parfois plus agréable d'avoir du code html avec sa coloration syntaxique qu'une chaine monochrome
En effet c'est surtout pour ça et aussi éviter les échappements de quotes

Posté : 28 sept. 2007, 21:08
par AB
Quand à préférer le code html ou le code php, le serveur ne va pas interpréter les parties du codes qui ne sont pas délimitées par les <?php ?>, et ainsi ira "plus vite" si tu es dans du code html, que si tu fais un echo en php :)
Oui j'ai un copain qui s'est amusé à faire des bench là dessus. Entre la gestion de l'ouverture et la fermeture des balises php ou l'interprétation du code inutile html, le serveur s'en tire toujours mieux avec l'ouverture et la fermeture des balises même si elles sont nombreuses.

J'utilise la méthode de Ryle et je fais un echo de code html uniquement quand c'est casse tête de faire autrement.

Outre un très léger gain de performance, le code est beaucoup plus lisible avec la coloration syntaxique comme l'a mentionné Ryle et surtout cela te permet de garder la fonction d'équilibrage des balises qui est bien pratique pour les logiciels qui le gère comme dreamweaver 8. Un vrai régal ces fonctions d'équilibrage des accolades, parenthèses, balises etc... presque de quoi perdre l'habitude de bien indenter son code!

La syntaxe de Fab est agréable aussi mais pour la raison que je viens de citer je crois que j'éviterai de l'utiliser.