Page 1 sur 1
optimisation php / html
Posté : 29 déc. 2006, 10:24
par secral
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.
Posté : 29 déc. 2006, 12:05
par Cyrano
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.
Posté : 29 déc. 2006, 12:09
par mere-teresa
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.
Posté : 29 déc. 2006, 12:19
par rod
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>
Posté : 29 déc. 2006, 13:03
par zeus
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

Posté : 29 déc. 2006, 13:18
par Ajoloca
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é.
Posté : 29 déc. 2006, 14:22
par rod
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.
Posté : 29 déc. 2006, 14:34
par Ajoloca
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.
Posté : 29 déc. 2006, 14:44
par rod
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.
Posté : 29 déc. 2006, 15:55
par Xenon_54
Vous incluez encore du HTML dans votre code?

Posté : 02 janv. 2007, 13:48
par Victor BRITO
Vous incluez encore du HTML dans votre code?

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>
Posté : 02 janv. 2007, 15:32
par jojolapine
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?)
Posté : 03 janv. 2007, 17:35
par mcorgnet
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.
Posté : 04 janv. 2007, 08:40
par Xenon_54
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?