That would be really cool!!! +398473 on this! One small point: I think it would be better if the function names have more descriptive names, like stream_open(), stream_close(), etc.
Sander On 2002.03.17 15:37 Wez Furlong wrote: > I thought it might be nice to allow people writing class > libraries in PHP/PEAR to be able to roll-their-own streams using > PHP code. > > It would be implemented something like the user-mode session module > handler, but a bit more OO; they would declare a class (see below) > and register it as a wrapper using a new user-space function called > file_register_wrapper(string $protocol, string $classname). > > file_register_wrapper would fail if the wrapper is already registered. > > The php_stream_open_wrapper function would create an instance of the > class and then call it's methods when the equivalent methods in > the php_stream_ops structure are called. > > This would allow some really cool things, like defining a custom > protocol and then passing that custom URL around to all sorts of > PHP functions (fopen(), copy(), extension functions that use wrappers) > and have them handle it without even noticing that it's implemented > in PHP code. > > Comments please! > > --Wez. > > > class my_stream { > function open($path, $mode, $options, &$opened_path) > { > return true/false; > } > function read($count) > { > return false on error; > else return string; > } > function write($data) > { > return false on error; > else return count written; > } > function close() > { > } > function flush() > { > } > /* these are optional */ > function seek($offset, $whence) > { > } > function gets($size) > { > return false on error; > else return string; > } > } > > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php > > > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php