La documentation officielle de PHP indique que les balises de fermeture (?>) sont optionnelles. Depuis la sortie de Zend Framework, le standard de formatage exige que ces balises soient omises pour les pages qui ne contiennent que du code PHP (par exemple la définition d'une classe).
Lorsqu'on utilise les instructions (include|require)(_once)? pour attacher une librairie, PHP copie dans le script principal le contenu du fichier avant d'exécuter le tout. Dans ces cas-ci, l'idée de ne pas fermer les balises PHP permet d'éviter que des sauts de lignes ou des espaces, souvent positionnés à la fin des fichiers inclus (après le tag de fermeture), se retrouvent imprimés en sortie dans le script principal. Par la suite, lorsqu'on voudra employer l'instruction header() pour faire une redirection ou encore pour faire du output buffering, cela provoquera la fameuse erreur "headers already sent".
Or, certaines personnes prétendent qu'une balise ouverte devrait toujours pouvoir être fermée et que c'est la responsabilité du programmeur de formater convenablement le code de ses librairies. D'autres, dont les concepteurs du Zend Framework, de Zend Studio, et plus particulièrement du Zend Engine sur lequel repose PHP, croient le contraire.
Simple préférence ou bonnes pratiques de programmation ?
Quoi qu'il en soit, l'éditeur Zend Studio for Eclipse 6 permet de tirer profit du formatage automatique du code (Menu Windows / Preferences / PHP / Formatter) et de le configurer pour utiliser les conventions PHP ou celles du Zend Framework. Et pourtant, même en spécifiant celles de ZF pour créer une nouvelle classe, j'ai remarqué que la balise de fermeture de PHP est automatiquement créée. Comme si c'était voulu...
lundi 1 décembre 2008
0 réponse à "Doit-on fermer les balises PHP ?"
S'abonner à :
Publier des commentaires (Atom)