Le buffer de sortie de PHP

Lorsqu’un programme écrit dans un fichier ou affiche un texte, celui-ci est mis dans un flux.
Dans le cas de PHP, quand un client est connecté au serveur, le flux généré par l’application est temporisé par un « output buffer »[1], qui conserve coté serveur les données affichées avant de les envoyer au client.
Selon la configuration de PHP et votre utilisation, le buffer est:
– Désactivé, les informations sont alors envoyées en continue vers le client à chaque affichage.
– Activé mais il attend la fin du programme pour tout envoyer en bloc.
– Activé et géré par le programmeur.

Son activation est très intéressante pour parer les erreurs fatales du type « Headers already sent »[2], les entêtes sont automatiquement envoyées dès qu’on essaye d’envoyer une donnée au client et cela avant cette donnée (sinon ce ne serait pas des entêtes).
Une fois ces entêtes envoyées, il est tout à fait logique qu’on ne puisse plus les modifier alors que si nos données affichées sont justes placées en attente sur le serveur, on peut toujours modifier ces entêtes.

Heureusement, la majorité des frameworks modernes gèrent déjà le buffer et font tout à votre place.

1. Tampon de sortie
2. Entêtes déjà envoyées

Florent

Je suis un développeur web à mon compte et je m'intéresse à beaucoup de choses en informatique...

Aucun commentaire

Commenter