pollita         Sat Jan  4 23:25:07 2003 EDT

  Added files:                 
    /phpdoc/en/reference/stream/functions       stream-get-filters.xml 

  Modified files:              
    /phpdoc/en/reference/stream reference.xml 
    /phpdoc/en/reference/stream/functions       stream-register-filter.xml 
  Log:
  Changes per Wez and addition of stream_get_filters
  
  
Index: phpdoc/en/reference/stream/reference.xml
diff -u phpdoc/en/reference/stream/reference.xml:1.4 
phpdoc/en/reference/stream/reference.xml:1.5
--- phpdoc/en/reference/stream/reference.xml:1.4        Sat Jan  4 18:14:54 2003
+++ phpdoc/en/reference/stream/reference.xml    Sat Jan  4 23:25:06 2003
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.4 $ -->
+<!-- $Revision: 1.5 $ -->
  <reference id="ref.stream">
   <title>Stream functions</title>
   <titleabbrev>Streams</titleabbrev>
@@ -11,21 +11,33 @@
     <simpara>
      Streams were introduced with <literal>PHP</literal> 4.3.0 as
      a way of generalizing file, network, data compression, and other
-     opperations which share a common set of functions and uses. In
-     its simplest definition, a stream is any I/O conduit for exchanging
-     information.  Some streams work on the local filesystem, some
-     use network connections (sockets), while others might potentially focus 
-     on communication devices such as printers or modems.  Because any variety
-     of stream may be added to <literal>PHP</literal> via the 
-     <function>stream_register_wrapper</function> function, there is no 
-     set limit on what can be done with them. See <xref linkend="wrappers"/> 
-     for a listing of stream wrappers built into <literal>PHP</literal>.
+     opperations which share a common set of functions and uses.  In
+     its simplest definition, a <literal>stream</literal> is a 
+     <literal>resource</literal> object which exhibits streamable 
+     behavior.  That is, it can be read from or written to in a linear 
+     fashion, and may be able to <function>fseek</function> to an
+     arbitrary locations within the stream.
     </simpara>
     <simpara>
-     In addition to streams, support for custom user filters is also available.
-     While a stream (such as 'http') is designed to communicate with an endpoint,
-     one or more filters can be placed between the stream and the application to
-     further process the data as it is read/written.
+     A <literal>wrapper</literal> is additional code which tells the stream how to 
+handle
+     specific protocols/encodings.  For example, the <literal>http</literal>
+     wrapper knows how to translate a URL into an <literal>HTTP/1.1</literal>
+     request for a file on a remote server.  There are many wrappers
+     built into <literal>PHP</literal> by default (See <xref linkend="wrappers"/>),
+     and additional, custom wrappers may be added either within a
+     PHP script using <function>stream_register_wrapper</function>,
+     or directly from an extension using the <xref linkend="streams"/>.
+     Because any variety of wrapper may be added to <literal>PHP</literal>, 
+     there is no set limit on what can be done with them.  To access the list
+     of currently registered wrappers, use <function>stream_get_wrappers</function>.
+    </simpara>
+    <simpara>
+     A <literal>filter</literal> is a final piece of code which may perform
+     opperations on data as it is being read from or written to a stream.
+        Filters may be defined in a <literal>PHP</literal> script using
+     <function>stream_register_filter</function> or in an extension using the
+     <xref linkend="streams"/>.  To access the list of currently registered filters,
+     use <function>stream_get_filters</function>.
     </simpara>
     <para>
      A stream is referenced as: 
<parameter>scheme</parameter>://<parameter>target</parameter>
@@ -33,9 +45,11 @@
       <listitem>
        <simpara>
         <parameter>scheme</parameter>(string) -
-        The name of the stream wrapper to be used.  Examples include: file, 
+        The name of the wrapper to be used.  Examples include: file, 
         http, https, ftp, ftps, compress.zlib, compress.bz2, ssl, tls, and php.  See 
-        <xref linkend="wrappers"/> for a list of PHP builtin wrappers.
+        <xref linkend="wrappers"/> for a list of PHP builtin wrappers.  If
+        no wrapper is specified, the function default is used (typically
+        <literal>file</literal>://).
        </simpara>
       </listitem>
       <listitem>
@@ -43,7 +57,7 @@
         <parameter>target</parameter> - 
         Depends on the wrapper used.  For filesystem related streams this is
         typically a path and filename of the desired file.  For network related 
-        streams this is typically a hostname often with a path appended.  Again, see
+        streams this is typically a hostname, often with a path appended.  Again, see
         <xref linkend="wrappers"/> for a description of targets for builtin streams.
        </simpara>
       </listitem>
@@ -85,7 +99,34 @@
 
    <section id="stream.constants">
     &reftitle.constants;
-    &no.constants;
+    <para>
+     <informaltable>
+      <tgroup cols="2">
+       <thead>
+        <row>
+         <entry>Constant</entry>
+         <entry>Description</entry>
+        </row>
+       </thead>
+       <tbody>
+        <row>
+         <entry><constant>STREAM_USE_PATH</constant></entry>
+         <entry><literal>Flag</literal> indicating if the <literal>stream</literal>
+          used the include path.
+         </entry>
+        </row>
+        <row>
+         <entry><constant>STREAM_REPORT_ERRORS</constant></entry>
+         <entry><literal>Flag</literal> indicating if the <literal>wrapper</literal>
+          if responsible for raising errors using <function>trigger_error</function> 
+          during opening of the stream.  If this flag is not set, you
+          should not raise any errors.
+         </entry>
+        </row>
+       </tbody>
+      </tgroup>
+     </informaltable>
+    </para>
    </section>
 
    <section id="stream.errors">
Index: phpdoc/en/reference/stream/functions/stream-register-filter.xml
diff -u phpdoc/en/reference/stream/functions/stream-register-filter.xml:1.1 
phpdoc/en/reference/stream/functions/stream-register-filter.xml:1.2
--- phpdoc/en/reference/stream/functions/stream-register-filter.xml:1.1 Sat Jan  4 
02:17:18 2003
+++ phpdoc/en/reference/stream/functions/stream-register-filter.xml     Sat Jan  4 
+23:25:06 2003
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
   <refentry id="function.stream-register-filter">
    <refnamediv>
     <refname>stream_register_filter</refname>
@@ -45,6 +45,27 @@
      so that the next filter in the chain can perform its filter.
      When no filters remain, the stream will write <parameter>data</parameter>
      in its final form.
+     <note>
+      <para>
+       If your filter alters the length of <parameter>data</parameter>, for
+       example by removing the first character, before passing onto
+       <literal>parent::write($data);</literal> it must be certain to include
+       that stolen character in the return count.
+      </para>
+     </note>
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+class myfilter extends php_user_filter {
+  function write($data) {
+    $data = substr($data,1);
+    $written_by_parent = parent::write($data);
+    return ($written_by_parent + 1);
+  }
+} 
+]]>
+      </programlisting>
+     </informalexample>
     </para>
 
     <methodsynopsis>
@@ -88,13 +109,23 @@
      <type>void</type><methodname>oncreate</methodname>
      <void/>
     </methodsynopsis>
-    <!-- When is this called? -->
+    <para>
+     This method is called during instantiation of the filter class
+     object.  If your filter allocates or initializes any other resources
+     (such as a buffer), this is the place to do it.
+    </para>
 
     <methodsynopsis>
      <type>void</type><methodname>onclose</methodname>
      <void/>
     </methodsynopsis>
-    <!-- When is this called? -->
+    <para>
+     This method is called upon filter shutdown (typically, this is also
+     during stream shutdown), and is executed <emphasis>after</emphasis>
+     the <literal>flush</literal> method is called.  If any resources
+     were allocated or initialzed during <literal>oncreate</literal>
+     this would be the time to destroy or dispose of them.
+    </para>
 
     <para>
      The example below implements a filter named <literal>rot13</literal>

Index: phpdoc/en/reference/stream/functions/stream-get-filters.xml
+++ phpdoc/en/reference/stream/functions/stream-get-filters.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
  <refentry id="function.stream-get-filters">
   <refnamediv>
    <refname>stream_get_filters</refname>
    <refpurpose>Retrieve list of registered filters</refpurpose> 
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>array</type><methodname>stream_get_filters</methodname>
      <void/>
     </methodsynopsis>
    <para>
     Returns an indexed array containing the name of all stream filters
     available on the running system.
    </para>
    <para>
     See Also:
     <function>stream_register_filter</function>, and
     <function>stream_get_wrappers</function>
    </para>
   </refsect1>
  </refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to