# The streamWrapper class

&reftitle.intro;

Allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as `fopen`, `fread` etc.).

This is NOT a real class, only a prototype of how a class defining its own protocol should be.

Implementing the methods in other ways than described here can lead to undefined behaviour.

An instance of this class is initialized as soon as a stream function tries to access the protocol it is associated with.

&reftitle.classsynopsis;

        streamWrapper

          streamWrapper

        &Properties;

         public
         resource
         context

        &Methods;

&reftitle.properties;

resource `context`

- The current context, or &null; if no context was passed to the caller function.

  Use the `stream_context_get_options` to parse the context.

  This property must be public so PHP can populate it with the actual context resource.

&reftitle.seealso;

- stream.streamwrapper.example-1
- `stream_wrapper_register`
- `stream_wrapper_unregister`
- `stream_wrapper_restore`

&reference.stream.entities.streamwrapper;