Exposing streamable resources, whether remote network I/O or local data sources, allows your extension to hook into the core data manipulation functions and avoid reimplementing the tedious work of descriptor management and I/O buffering. This makes it more useful, and more powerful when placed in a userspace setting.
The next chapter will finish up the streams layer by taking a look at filters and contexts that can be used to alter the default behavior of streams, and even modify data en route.
The PHP Life Cycle
Variables from the Inside Out
Memory Management
Setting Up a Build Environment
Your First Extension
Returning Values
Accepting Parameters
Working with Arrays and HashTables
The Resource Data Type
PHP4 Objects
PHP5 Objects
Startup, Shutdown, and a Few Points in Between
INI Settings
Accessing Streams
Implementing Streams
Diverting the Stream
Configuration and Linking
Extension Generators
Setting Up a Host Environment
Advanced Embedding
Appendix A. A Zend API Reference
Appendix B. PHPAPI
Appendix C. Extending and Embedding Cookbook
Appendix D. Additional Resources