From 8088087b0bf9ed2933b1cdbf68c472e6b49b31c6 Mon Sep 17 00:00:00 2001
From: Marcus Boerger <helly@php.net>
Date: Tue, 1 Nov 2005 21:46:33 +0000
Subject: [PATCH] - Update docu

---
 ext/spl/examples/xml_tree.php       |   6 ++
 ext/spl/examples/xml_xpath_tree.php |  16 +++-
 ext/spl/spl.php                     | 109 +++++++++++++++++++++++++++-
 3 files changed, 125 insertions(+), 6 deletions(-)

diff --git a/ext/spl/examples/xml_tree.php b/ext/spl/examples/xml_tree.php
index ed44331e5f..277eb44d17 100755
--- a/ext/spl/examples/xml_tree.php
+++ b/ext/spl/examples/xml_tree.php
@@ -30,8 +30,14 @@ EOF;
 
 if (!class_exists("RecursiveTreeIterator", false)) require_once("recursivetreeiterator.inc");
 
+/** @ingroup Examples
+ * @brief Generates a structure for a XML file
+ * @version 1.0
+ */
 class SimpleXmlStructure extends AppendIterator implements RecursiveIterator
 {
+	/** @param xml object of class SimpleXmlStructure or XML file name to open.
+	 */
 	function __construct($xml)
 	{
 		parent::__construct();
diff --git a/ext/spl/examples/xml_xpath_tree.php b/ext/spl/examples/xml_xpath_tree.php
index 781ac12c2b..5ef60c9513 100755
--- a/ext/spl/examples/xml_xpath_tree.php
+++ b/ext/spl/examples/xml_xpath_tree.php
@@ -34,7 +34,11 @@ EOF;
 
 if (!class_exists("RecursiveTreeIterator", false)) require_once("recursivetreeiterator.inc");
 
-class SimpleXmlStructure extends AppendIterator implements RecursiveIterator
+/** @ingroup Examples
+ * @brief Generates the XML structure for SimpleXMLXPathResult elements
+ * @version 1.0
+ */
+class SimpleXpathStructure extends AppendIterator implements RecursiveIterator
 {
 	function __construct($xml)
 	{
@@ -87,8 +91,16 @@ class SimpleXmlStructure extends AppendIterator implements RecursiveIterator
 	}
 }
 
+/** @ingroup Examples
+ * @brief Generates a structure from an xpath query on a XML file
+ * @version 1.0
+ */
 class SimpleXMLXPathResult extends RecursiveArrayIterator
 {
+	/** 
+	 * @param $file XML file to open
+	 * @param $xpath query to execute
+	 */
 	function __construct($file, $xpath)
 	{
 		$xml = @simplexml_load_file($file, 'SimpleXmlIterator');
@@ -107,7 +119,7 @@ class SimpleXMLXPathResult extends RecursiveArrayIterator
 
 	function getChildren()
 	{
-		return new SimpleXmlStructure(parent::current());
+		return new SimpleXpathStructure(parent::current());
 	}
 }
 
diff --git a/ext/spl/spl.php b/ext/spl/spl.php
index 86374d00f5..d6fce08fa9 100755
--- a/ext/spl/spl.php
+++ b/ext/spl/spl.php
@@ -144,6 +144,86 @@
  * c-code.
  */
 
+/** @ingroup SPL
+ * @brief Default implementation for __autoload()
+ * @since PHP 5.1
+ *
+ * @param class_name        name of class to load
+ * @param file_extensions   file extensions (use defaults if NULL)
+ */
+function spl_autoload(string $class_name, string $file_extensions = NULL);
+
+/** @ingroup SPL
+ * @brief Manual invocation of all registerd autoload functions
+ * @since PHP 5.1
+ *
+ * @param class_name        name of class to load
+ */
+function spl_autoload_call(string $class_name);
+
+/** @ingroup SPL 
+ * @brief Register and return default file extensions for spl_autoload
+ * @since PHP 5.1
+ *
+ * @param file_extensions optional comma separated list of extensions to use in 
+ *        default autoload function. If not given just return the current list.
+ * @return comma separated list of file extensions to use in default autoload 
+ *        function.
+ */
+function spl_autoload_extensions($file_extensions);
+
+/** @ingroup SPL
+ * @brief Return all registered autoload functionns
+ * @since PHP 5.1
+ *
+ * @return array of all registered autoload functions or false
+ */
+function spl_autoload_functions();
+
+/** @ingroup SPL
+ * @brief Register given function as autoload implementation
+ * @since PHP 5.1
+ *
+ * @param autoload_function  name of function or array of object/class and 
+ *                           function name to register as autoload function.
+ * @param throw              whether to throw or issue an error on failure.
+ */
+function spl_autoload_register(string $autoload_function = "spl_autoload", $throw = true);
+
+/** @ingroup SPL
+ * @brief Unregister given function as autoload implementation
+ * @since PHP 5.1
+ *
+ * @param autoload_function  name of function or array of object/class and 
+ *                           function name to unregister as autoload function.
+ */
+function spl_autoload_unregister(string $autoload_function = "spl_autoload");
+
+/** @ingroup SPL
+ * @brief Return an array of classes and interfaces in SPL
+ *
+ * @return array containing the names of all clsses and interfaces defined in 
+ *         extension SPL
+ */
+function spl_classes();
+
+/** @ingroup SPL
+ * @brief Count the elements in an iterator
+ * @since PHP 5.1
+ *
+ * @return number of elements in an iterator
+ */
+function iterator_count(Traversable $it);
+
+/** @ingroup SPL
+ * @brief Copy iterator elements into an array
+ * @since PHP 5.1
+ *
+ * @param it  iterator to copy
+ * @return array with elements copied from the iterator
+ */
+function iterator_to_array(Traversable $it);
+
 /** @ingroup ZendEngine
  * @brief Basic Exception class.
  * @since PHP 5.0
@@ -750,16 +830,20 @@ class SplFileInfo
 	function getFilename();	
 
 	/** @return SplFileInfo created for the file
+	 * @param class_name name of class to instantiate
+	 * @see SplFileInfo::setInfoClass()
 	 */
-	function getFileInfo();
+	function getFileInfo(string class_name = NULL);
 
 	/** @return The current entries path and file name.
 	 */
 	function getPathname();	
 
 	/** @return SplFileInfo created for the path
+	 * @param class_name name of class to instantiate
+	 * @see SplFileInfo::setInfoClass()
 	 */
-	function getPathInfo();
+	function getPathInfo(string class_name = NULL);
 
 	/** @return The current entry's permissions.
 	 */
@@ -835,9 +919,20 @@ class SplFileInfo
 	 * @return The opened file as a SplFileObject instance
 	 *
 	 * @see SplFileObject
+	 * @see SplFileInfo::setFileClass()
 	 * @see file()
 	 */
 	function openFile($mode = 'r', $use_include_path = false, $context = NULL);
+
+	/** @param class_name name of class used with openFile(). Must be derived 
+	 * from SPLFileObject.
+	 */
+	function setFileClass(string class_name = "SplFileObject");
+
+	/** @param class_name name of class used with getFileInfo(), getPathInfo(), 
+	 *                    getSubPathInfo(). Must be derived from SplFileInfo.
+	 */
+	function setInfoClass(string class_name = "SplFileInfo");
 }
 
 /** @ingroup SPL
@@ -887,7 +982,11 @@ class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveI
 
 	/** Construct a directory iterator from a path-string.
 	 *
-	 * @param $path directory to iterate.
+	 * @param $path   directory to iterate.
+	 * @param $flags  open flags
+	 * - CURRENT_AS_FILEINFO
+	 * - KEY_AS_FILENAME
+	 * - NEW_CURRENT_AND_KEY 
 	 */
 	function __construct($path, $flags = 0);
 
@@ -916,8 +1015,10 @@ class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveI
 	function getSubPathname();
 
 	/** @return SplFileInfo created for the current sub path
+	 * @param class_name name of class to instantiate
+	 * @see SplFileInfo::setInfoClass()
 	 */
-	function getSubPathInfo();
+	function getSubPathInfo(string $class_name = NULL);
 
 }
 
-- 
2.40.0