Chapitre 43. API de flux les auteurs d'extensions

Table des matières
Présentation
Eléments de bases
Les flux qui sont des ressources
Référence des API communes de flux
Streams Dir API Reference
API des flux pour les fichiers
Streams Socket API Reference
Streams Structures
Constantes de flux

Présentation

Les flux de PHP proposent une approche unifiée à la gestion des fichiers et sockets, depuis une extension PHP. En utilisant l'API standard, les flux vous permettent d'accéder à des fichiers, des sockets, des URL, de la mémoire ou encore des objets définis dans des scripts. Les flux (streams en anglais), sont une API flexible et dynamique, dynamiquement chargée dans les modules (et les scripts!).

Le but des flux est de proposer une API confortables pour les programmeurs, lors des manipulations de fichiers, URL et autres sources de données linéaires. L'API unifiée est très simple à comprendre : elle est plus ou moins basée sur la famille de fonction classiques C d'entrée/sortie (avec les mêmes concepts pour la plupart des fonctions) : les programmeurs C ne seront pas dépaysés.

L'API des flux intervient à différents niveaux : à la base, elle définit un objet php_stream, qui représente les sources de données. A un niveau au dessus, l'API défini un objet php_stream_wrapper qui s'interface avec l'API de bas niveau, pour lire et écrire les données et méta données, dans les sources.

Les flux peuvent être converti en pilotes pour fichiers, de manière à être utilisé par des librairies tierce-partie avec beaucoup de facilité. Cela autorise ces librairies à accéder aux données directement depuis des sources représentées par des URL. Si votre système supporte la fonction fopencookie(), vous pouvez même passer n'importe quel flux PHP à une autre librairie qui utilise les entrée/sortie standard ANSI!