-
'Bonnes manières' et php
Bonjour à tous,
il y a quelques semaines j'ai commencé à bidouiller en php pour un site perso. La structure fonctionne, il ne reste plus quà faire du remplissage, mais avant de me lancer, je me demandais s'il existe de la doc quelque part sur les ''bonnes manières'' du php ou des recommendations sur l'organization générale d'un site, histoire de ne pas avoir à tout restructurer pour un petit changement dans 6 mois.
Je me demandais síl y a aussi des restriction quant au style du code. J'emploie par example assez régulièrement la commande echo pour générer de l'html, par exemple
<?php
...
echo ''Génère de l'html'';
...
?>
alors que je pourrais faire
<?php ... ?>
<HTML>
<?php ... ?>
Est-ce que cela change quelques chose? Lisibilité du code? Performance? Autres?
Merci,
Tom
-
Pour relire et débugguer le code la première solution est de loin la meilleure ;)
-
Salut,
Pour moi les 2 sont correctes, ça dépend bcps des outils que tu utilises, par exemple avec un éditeur WYSIWYG comme dreamweaver il est appréciable que l'éditeur puisse afficher à l'écran l'HTML de ta page, chose qu'il ne pourra pas faire si tu génère tout avec des "echo"
Tandis que dans le 2e cas il pourra le faire, mais au détriment de la lisibilité de ton code php global.
Les 2 conviennent à 2 métiers je dirais presque : un intégrateur qui devra faire une interface complexe en HTML préférera faire son interface avec un outil fait pour ca qui lui génère son code HTML et intégrer ses "blocs" de php à l'intérieur.
Tandis qu'un programmeur préférera tout faire d'un seul bloc avec des echo un peu partout.
-
Les templates ? Niveau "lisibilité", j'estime que c'est le must surtout dans le cadre de projet assez volumineux et/ou quand plusieurs personnes travaillent sur un même projet.
Julp.
-
Au niveau performance la première est de loin à oublier. En cherchant un peu il me semble qu'il existe des comparatifs où est montré la différence de temps entre une page entièrrement écrite en php (html écrit depuis php) et une page html avec des éléments dynamiques.
Le maximum en html, et tu incorpores ce qui est dynamique dans ta page :)
Le système des templates évoqué par julp reste l'idéal, mais pas toujours abordable quand on débute. Mais c'est mieux de prendre les bonnes habitudes tout de suite :P
-
Merci pour les réponses. Je vais jeter un coup d'oeil aux templates. A vue de nez, ce n'est probablement pas vraiment nécessaire pour un site perso mais pour la bauté du geste...
Sinon, pas trouvé grand chose sur les comparaisons de perfs html et php. Faut dire que ce ne sont pas les meilleurs mot-clés à utiliser sur google. :lol:
Tom
-
Pas trop, ou alors tu trouveras jamais ce que tu veux :P Mais je pense que tu peux faire confiance là dessus, en même temps ça parait logique.
Je pense que tu peux trouver des livres sur le sujet, ou quelques ebooks. Du genre "PHP - Best Practices" (c'est un exemple ! Je l'ai en Java, mais je ne sais pas si il existe en php).
-
Pour les différences de perfs on a donc 3 cas :
( Je fais abstraction volontairement du code php, qui dans les 3 cas sera aussi rapide )
- HTML sans echo : le serveur envoi directement le code HTML au client, et utilise le module php uniquement à chaque balise php.
=> Le code HTML est directement envoyé sans même utiliser le module PHP
- tout en PHP : le serveur utiliser le module php tout le long.
=>Le code HTML est généré via PHP par des echo.
- tout en PHP avec des templates : le moteur de template est chargé en mémoire et va chercher le template, analyse à quels endroits il doit effectuer des traitements PHP ou renvoyer le code tel quel.
=> Le code HTML est généré via PHP avec plusieurs étapes puis via des echo ( ou équivalent ^^ )
Donc niveau perfs on le classement suivant :
1) HTML avec balises php uniquement qd nécessaire
2) tout en PHP
3) Moteur de template
Sachant qu'en utilisant un système de cache on obtient des résultats quasi identique pour les 3 méthodes.
-
Smarty est capable de compiler les templates ce qui est un détail généralement omis. Si le code généré par une compilation de Smarty n'est pas optimal, les performances sont très voisines de celles d'une page directement écrite avec la solution HTML + balisers php là où c'est nécessaire. Vous gagnerez beaucoup avec un moteur de template comme Smarty pour une perte de performance même pas mesurable. En revanche, les fichiers de Smarty étant légèrement gros et nombreux, Smarty est surtout très efficace avec un cache d'opcode. (capable de mettre en cache également les fichiers compilés, très intéressant)
Vous ne gagnerez rien à optimiser la sortie. Même pas à mesurer le temps d'un echo c'est tout petit de toute façon. Quand à la fin vous remarquez que vous avez gagné 100 µs sur une génération d'un temps total de 100ms, ce n'est pas une victoire, vous avez seulement perdu beaucoup de temps pour rien.
Utilisez un moteur de template qui possède une gestion de cache sur un projet consistant.
N'utilisez pas de moteur de template quand vous voulez coder des scripts d'une centaine de lignes.