Wez,
    +2e32-1
    you read my mind ! but does this also entails having an OO interface to
the streams as they are. it would be very annoying to have a cool stream
abstraction interface, but then have to check for every resource list entry
under the sun to access the stream_ops (le_ftp, le_file, le_xxx, etc).


"Wez Furlong" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> 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

Reply via email to