optimisation php / html

Eléphanteau du PHP | 15 Messages

29 déc. 2006, 10:24

Bonjour,

Je voudrais savoir ce qui est le plus rapide à l'execution et le moins gourmand en ressources pour le serveur :

Ouvrir une balise php en debut de feuille et la fermer à la fin en integrant tout le code dans des echo pour le html.

ou

de faire le contraire, c'est a dire n'ouvrir les balises php que lorsqu'on a besoin d'executer une instruction php et refermer la balise des que l'on repasse au html ???

Merci pour vos réponses et bonne journée.

Mammouth du PHP | 19672 Messages

29 déc. 2006, 12:05

La seconde solution sera la plus rapide, et c'est logique : le HTML est un langage client : il est donc inutile de le faire passer dans l'interpréteur PHP et on peut l'envoyer tel quel au navigateur pour ne faire exécuter que le code PHP coté serveur.

Donc en alternant, l'interpréteur va construire la page en interprétant le PHP pour créer la partie HTML, puis ajouter ce qui n'est pas identifié comme du PHP et finalement envoyer la page complète.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 déc. 2006, 12:09

Un autre intérêt de n'ouvrir les balises <?php ?> que pour le PHP est de profiter de la coloration syntaxique pour le HTML aussi.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

rod
Eléphanteau du PHP | 20 Messages

29 déc. 2006, 12:19

De plus ton code sera plus clair, par exemple :
<?php

echo '<html><head>';
echo '<title>' . $title . '</title>';
echo '</head>';

?>
Et quand même moins clair que
<html>
    <head>
        <title><?php echo $title ?></title>
    </head>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 déc. 2006, 13:03

Je n'ai plus la main sur les benchs mais j'ai découvert récemment que le temps écoulé à chaque <?= ou <?php est souvent supérieur au temps d'interpréter les echo :?

Par contre, personnellement, pour des raison de séparation du code et de coloration syntaxique, je préfère n'utiliser le PHP que là où il est nécessaire ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

29 déc. 2006, 13:18

Bonjour,

Je ne serait pas aussi catégorique. Je dirai que c'est fonction du contexte.
Si on est dans une partie ou le (X)HTML est plus important (en nombre de lignes) comme dans l'exemple du
<title><?php echo $titre ?></title>
il est préférable d'ouvrir et de fermer les tags PHP.
En revanche je trouve que l'abus de cette technique perturbe la lecture et la compréhension du code.
Comme ceci
<?php if ($qqChose == $autreChose)
{ ?>
<tr><td><?php echo $cell ?> </td></tr>
<?php
}
?>
Donc un juste milieu me semble plus adapté.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

rod
Eléphanteau du PHP | 20 Messages

29 déc. 2006, 14:22

Pour une boucle, j'utilise :
<html>
  <head>
    <title>Liste des membres</title>
  </head>
  <body>
    <?php if ($membres): ?>
    <div id="membres">
      <?php foreach ($membres as $membre): ?>
      <div class="<?php echo $membre->id ?>">
        <p><?php echo $membre->description ?></p>
      </div>
      <?php endforeach ?>
    </div>
    <?php else: ?>
    <p>Aucun membre disponible.</p>
    <?php endif ?>
  </body>
</html>
Perso. j'ai l'habitude et je trouve ça plus clair.

ViPHP
ViPHP | 1961 Messages

29 déc. 2006, 14:34

Pour une boucle, j'utilise :
<html>
  <head>
    <title>Liste des membres</title>
  </head>
  <body>
    <?php if ($membres): ?>
    <div id="membres">
      <?php foreach ($membres as $membre): ?>
      <div class="<?php echo $membre->id ?>">
        <p><?php echo $membre->description ?></p>
      </div>
      <?php endforeach ?>
    </div>
    <?php else: ?>
    <p>Aucun membre disponible.</p>
    <?php endif ?>
  </body>
</html>
Perso. j'ai l'habitude et je trouve ça plus clair.
C'est vraiment, mais alors vraiment pas mon cas.
Je me vois mal déboguer un script de + de 100 lignes avec cette façon d'écrire.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

rod
Eléphanteau du PHP | 20 Messages

29 déc. 2006, 14:44

Vu que j'utilise MVC (avec le Z-F) ce n'est pas difficile de trouver les erreurs. Car toute la partie des traitements est faite en amont.

Mammouth du PHP | 1885 Messages

29 déc. 2006, 15:55

Vous incluez encore du HTML dans votre code? :lol:

;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Mammouth du PHP | 2937 Messages

02 janv. 2007, 13:48

Vous incluez encore du HTML dans votre code? :lol:
Pour ma part, je ne l'inclus dans un echo que dans le cas d'attributs d'éléments de formulaire n'apparaissant que sous certaines conditions. Par exemple:
<form>
  <label for="moninput">Grosminet</label>
  <input id="moninput" name="moninput" type="checkbox" <?php if ($titi=='Grosminet') echo 'checked="checked"'; ?> />
</form>

ViPHP
ViPHP | 3607 Messages

02 janv. 2007, 15:32

Je ne pense pas Xenon parlait de séparer le php/html comme tu l'entends victor, mais qu'il s'étonnait de voir que l'on utilisait pas tous des templates ;-)
(peut-être me trompe-je?)

Mammouth du PHP | 514 Messages

03 janv. 2007, 17:35

Je ne pense pas Xenon parlait de séparer le php/html comme tu l'entends victor, mais qu'il s'étonnait de voir que l'on utilisait pas tous des templates ;-)
(peut-être me trompe-je?)
Je pense que c'est ça.

Personnellement je n'utlise plus que les templates. Même si ça complique légèrement les formulaires dynamiques, débugger deviendrait presque un plaisir.
Ne jamais repousser à demain ce qu'on peut faire après demain ...

Mammouth du PHP | 1885 Messages

04 janv. 2007, 08:40

En effet, je n'utilise que ma classe de template. Et elle est bien pratique.
J'hésite encore à la partager à tous sur PHPFrance.

Suis-je normal docteur?
La programmation est l'expression de la poésie d'un programmeur
Génération PHP