La API de Secuencias de PHP introduce un enfoque unificado a la
gestión de archivos y sockets en extensiones PHP. Usando una
API única con funciones estándar para operaciones
comunes, la API de secuencias le permite a su extensión
acceder a archivos, sockets, URLs, memoria y objetos definidos
por-script. Esta es una API extensible de tiempo de
ejecución que permite la carga dinámica de
módulos (¡y scripts!) para registrar nuevas
secuencias.
El propósito de la API de secuencias es facilitar la
apertura de archivos, URLs y otras fuentes de datos secuenciables a
los desarrolladores, mediante una API unificada que es fácil
de entender. La API se encuentra más o menos basada en la
familia de funciones ANSI C stdio (con una semántica
idéntica para la mayoría de sus funciones
principales), así que los progamadores de C tendrán
una sensación de familiaridad con las secuencias.
La API de secuencias opera en un par de niveles diferentes: al
nivel base, la API define objetos php_stream para representar
fuentes de datos secuenciables. En un nivel ligeramente más
alto, la API define objetos php_stream_wrapper que "envuelven" la
API de nivel más bajo para proveer soporte para la
recuperación de datos y meta-datos desde URLs. Un
parámetro de contexto adicional, aceptado
por la mayoría de funciones de creación de secuencia,
es pasado al método stream_opener de la
envoltura para configurar en detalle el comportamiento de la misma.
Cualquier secuencia, una vez abierta, puede tener también
cualquier número de filtros aplicados
sobre ella, los cuales procesan datos en la medida en que
éstos son leídos desde/escritos hacia la secuencia.
Las secuencias pueden ser moldeadas (convertidas) a otros tipos de
gestores de archivo, de modo que puedan ser usadas con bibliotecas
externas sin mucho problema. Esto permite que aquellas bibliotecas
accedan a datos directamente desde fuentes tipo URL. Si su sistema
tiene la función fopencookie() o
funopen(), ¡puede pasar incluso cualquier
secuencia PHP a cualquier biblioteca que use stdio ANSI!
Nota:
Las funciones en este capítulo son para su uso en el
código fuente de PHP y no son funciones de PHP. Las
funciones de secuencias para usuarios pueden encontrarse en la
Referencia de Secuencias.