Déc
28

Astuce : ne fermez pas vos tags PHP !

Si vous programmez en PHP, vous avez sans aucun doute déjà inclus un fichier dans un autre :

include "monFichier.php";

Si vous programmez en PHP, je suis également certain que vous avez déjà rencontré cette erreur :

Headers already sent by monFichier.php

Je me trompe ?

Cette erreur vient souvent du fait que vous avez laissé trainer un caractère (balise, retour chariot, caractère quelconque)  dans un fichier qui n’est censé rien afficher (librairie, classe). Si vous incluez ce fichier et que vous utilisez une fonction qui utilise les headers (headers(), session_start() ou setcookie(), par exemple), la fameuse erreur va apparaître.

La solution est donc de ne pas fermer vos tags PHP dans les fichiers qui ne contiennent que du PHP. En MVC, cela signifie que vous ne devez en principe pas rencontrer de tag php fermant ?> (closing tags PHP) ailleurs que dans les vues.

Si vous utilisez symfony, vous aurez remarqué qu’ils ne ferment pas les tags PHP dans les classes générées. Plus fort que le Roquefort (j’adore cette expression, désolé) : Zend Framework, dans ses conventions de codage (ici et ) , indique qu’il est interdit de mettre un tag PHP fermant dans un fichier ne contenant que du code PHP.

Vous trouverez sur le site Finish Joomla des exemples de ce que je viens d’expliquer et une liste de projets open source qui ont choisi de supprimer les tags PHP fermants.



Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes