Browse Source

- MFH Update docu

PECL
Marcus Boerger 19 years ago
parent
commit
dc8bfcaade
  1. 341
      ext/spl/spl.php

341
ext/spl/spl.php

@ -13,25 +13,25 @@
* *
* SPL - Standard PHP Library * SPL - Standard PHP Library
* *
* SPL is a collection of interfaces and classes that are meant to solve
* standard problems and implements some efficient data access interfaces
* and classes. You'll find the classes documented using php code in the
* file spl.php or in corresponding .inc files in subdirectories examples
* and internal. Based on the internal implementations or the files in the
* SPL is a collection of interfaces and classes that are meant to solve
* standard problems and implements some efficient data access interfaces
* and classes. You'll find the classes documented using php code in the
* file spl.php or in corresponding .inc files in subdirectories examples
* and internal. Based on the internal implementations or the files in the
* examples subdirectory there are also some .php files to experiment with. * examples subdirectory there are also some .php files to experiment with.
*
* The .inc files are not included automatically because they are sooner or
* later integrated into the extension. That means that you either need to
* put the code of examples/autoload.inc into your autoprepend file or that
*
* The .inc files are not included automatically because they are sooner or
* later integrated into the extension. That means that you either need to
* put the code of examples/autoload.inc into your autoprepend file or that
* you have to point your ini setting auto_prepend_file to that file. * you have to point your ini setting auto_prepend_file to that file.
*
*
* Below is a list of interfaces/classes already availabel natively through * Below is a list of interfaces/classes already availabel natively through
* the SPL extension grouped by category. * the SPL extension grouped by category.
*
*
* 1) Iterators * 1) Iterators
*
*
* SPL offers some advanced iterator algorithms: * SPL offers some advanced iterator algorithms:
*
*
* - interface RecursiveIterator extends Iterator * - interface RecursiveIterator extends Iterator
* - interface OuterIterator extends Iterator * - interface OuterIterator extends Iterator
* - class RecursiveIteratorIterator implements OuterIterator * - class RecursiveIteratorIterator implements OuterIterator
@ -48,32 +48,35 @@
* - class AppendIterator implements OuterIterator * - class AppendIterator implements OuterIterator
* - class RegexIterator extends FilterIterator * - class RegexIterator extends FilterIterator
* - class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator * - class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator
*
*
* 2) Directories and Files * 2) Directories and Files
*
*
* SPL offers two advanced directory and file handling classes: * SPL offers two advanced directory and file handling classes:
*
*
* - class SplFileInfo * - class SplFileInfo
* - class DirectoryIterator extends SplFileInfo implements Iterator * - class DirectoryIterator extends SplFileInfo implements Iterator
* - class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveIterator
* - class filesystemIterator extends DirectoryIterator
* - class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator
* - class GlobIterator extends FilesystemIterator implements Countable
* - class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator * - class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator
*
* - class SplTempFileObject extends SplFileObject
*
* 3) XML * 3) XML
*
*
* SPL offers an advanced XML handling class: * SPL offers an advanced XML handling class:
*
*
* - class SimpleXMLIterator extends simplexml_element implements RecursiveIterator * - class SimpleXMLIterator extends simplexml_element implements RecursiveIterator
*
*
* 4) Array Overloading * 4) Array Overloading
*
*
* SPL offers advanced Array overloading: * SPL offers advanced Array overloading:
*
*
* - class ArrayObject implements IteratorAggregate, ArrayAccess, Countable * - class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
* - class ArrayIterator implements Iterator, ArrayAccess, Countable, SeekableIterator * - class ArrayIterator implements Iterator, ArrayAccess, Countable, SeekableIterator
* - class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator * - class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
*
*
* As the above suggest an ArrayObject creates an ArrayIterator when it comes to * As the above suggest an ArrayObject creates an ArrayIterator when it comes to
* iteration (e.g. ArrayObject instance used inside foreach).
* iteration (e.g. ArrayObject instance used inside foreach).
* *
* 5) Counting * 5) Counting
* *
@ -81,7 +84,7 @@
* *
* 6) Exception%s * 6) Exception%s
* *
* SPL provides a set of standard Exception classes each meant to indicate a
* SPL provides a set of standard Exception classes each meant to indicate a
* certain problem type. * certain problem type.
* *
* - class LogicException extends Exception * - class LogicException extends Exception
@ -115,10 +118,10 @@
* *
* 9) @ref Examples * 9) @ref Examples
* *
* The classes and interfaces in this group are contained as PHP code in the
* The classes and interfaces in this group are contained as PHP code in the
* examples subdirectory of ext/SPL. Sooner or later they will be moved to * examples subdirectory of ext/SPL. Sooner or later they will be moved to
* c-code. * c-code.
*
*
* 10) Some articles about SPL: * 10) Some articles about SPL:
* - <a href="http://www.phpro.org/tutorials/Introduction-to-SPL.html">Introduction to Standard PHP Library (SPL)</a> * - <a href="http://www.phpro.org/tutorials/Introduction-to-SPL.html">Introduction to Standard PHP Library (SPL)</a>
* - <a href="http://www.sitepoint.com/article/php5-standard-library/1">Introducing PHP 5's Standard Library</a> * - <a href="http://www.sitepoint.com/article/php5-standard-library/1">Introducing PHP 5's Standard Library</a>
@ -139,7 +142,7 @@
* - Debug session 2 <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_1.pps">[pps]</a>, <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_1.pdf">[pdf]</a>, <a href="http://taks.somabo.de/200411_php_conference_frankfrurt_iterator_debug_session.swf">[swf]</a> * - Debug session 2 <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_1.pps">[pps]</a>, <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_1.pdf">[pdf]</a>, <a href="http://taks.somabo.de/200411_php_conference_frankfrurt_iterator_debug_session.swf">[swf]</a>
* - Debug session 3 <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_2.pps">[pps]</a>, <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_2.pdf">[pdf]</a> * - Debug session 3 <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_2.pps">[pps]</a>, <a href="http://talks.somabo.de/200509_toronto_iterator_debug_session_2.pdf">[pdf]</a>
* *
* You can download this documentation as a chm file
* You can download this documentation as a chm file
* <a href="http://php.net/~helly/php/ext/spl/spl.chm">here</a>. * <a href="http://php.net/~helly/php/ext/spl/spl.chm">here</a>.
* *
* (c) Marcus Boerger, 2003 - 2007 * (c) Marcus Boerger, 2003 - 2007
@ -147,19 +150,19 @@
/** @defgroup ZendEngine Zend engine classes /** @defgroup ZendEngine Zend engine classes
* *
* The classes and interfaces in this group are contained in the c-code of
* The classes and interfaces in this group are contained in the c-code of
* PHP's Zend engine. * PHP's Zend engine.
*/ */
/** @defgroup SPL Internal classes /** @defgroup SPL Internal classes
* *
* The classes and interfaces in this group are contained in the c-code of
* The classes and interfaces in this group are contained in the c-code of
* ext/SPL. * ext/SPL.
*/ */
/** @defgroup Examples Example classes /** @defgroup Examples Example classes
* *
* The classes and interfaces in this group are contained as PHP code in the
* The classes and interfaces in this group are contained as PHP code in the
* examples subdirectory of ext/SPL. Sooner or later they will be moved to * examples subdirectory of ext/SPL. Sooner or later they will be moved to
* c-code. * c-code.
*/ */
@ -181,13 +184,13 @@ function spl_autoload(string $class_name, string $file_extensions = NULL) {/**/}
*/ */
function spl_autoload_call(string $class_name) {/**/}; function spl_autoload_call(string $class_name) {/**/};
/** @ingroup SPL
/** @ingroup SPL
* @brief Register and return default file extensions for spl_autoload * @brief Register and return default file extensions for spl_autoload
* @since PHP 5.1 * @since PHP 5.1
* *
* @param file_extensions optional comma separated list of extensions to use in
* @param file_extensions optional comma separated list of extensions to use in
* default autoload function. If not given just return the current list. * default autoload function. If not given just return the current list.
* @return comma separated list of file extensions to use in default autoload
* @return comma separated list of file extensions to use in default autoload
* function. * function.
*/ */
function spl_autoload_extensions($file_extensions) {/**/}; function spl_autoload_extensions($file_extensions) {/**/};
@ -204,7 +207,7 @@ function spl_autoload_functions() {/**/};
* @brief Register given function as autoload implementation * @brief Register given function as autoload implementation
* @since PHP 5.1 * @since PHP 5.1
* *
* @param autoload_function name of function or array of object/class and
* @param autoload_function name of function or array of object/class and
* function name to register as autoload function. * function name to register as autoload function.
* @param throw whether to throw or issue an error on failure. * @param throw whether to throw or issue an error on failure.
*/ */
@ -214,7 +217,7 @@ function spl_autoload_register(string $autoload_function = "spl_autoload", $thro
* @brief Unregister given function as autoload implementation * @brief Unregister given function as autoload implementation
* @since PHP 5.1 * @since PHP 5.1
* *
* @param autoload_function name of function or array of object/class and
* @param autoload_function name of function or array of object/class and
* function name to unregister as autoload function. * function name to unregister as autoload function.
*/ */
function spl_autoload_unregister(string $autoload_function = "spl_autoload") {/**/}; function spl_autoload_unregister(string $autoload_function = "spl_autoload") {/**/};
@ -222,7 +225,7 @@ function spl_autoload_unregister(string $autoload_function = "spl_autoload") {/*
/** @ingroup SPL /** @ingroup SPL
* @brief Return an array of classes and interfaces in SPL * @brief Return an array of classes and interfaces in SPL
* *
* @return array containing the names of all clsses and interfaces defined in
* @return array containing the names of all clsses and interfaces defined in
* extension SPL * extension SPL
*/ */
function spl_classes() {/**/}; function spl_classes() {/**/};
@ -252,26 +255,26 @@ function iterator_to_array(Traversable $it, $use_keys = true) {/**/};
class Exception class Exception
{ {
/** The exception message */ /** The exception message */
protected $message;
/** The string represenations as generated during construction */
private $string;
/** The code passed to the constructor */
protected $code;
/** The file name where the exception was instantiated */
protected $file;
/** The line number where the exception was instantiated */
protected $line;
/** The stack trace */
private $trace;
protected $message;
/** The string represenations as generated during construction */
private $string;
/** The code passed to the constructor */
protected $code;
/** The file name where the exception was instantiated */
protected $file;
/** The line number where the exception was instantiated */
protected $line;
/** The stack trace */
private $trace;
/** Prevent clone /** Prevent clone
*/ */
final private function __clone() {}
final private function __clone() {}
/** Construct an exception /** Construct an exception
* *
@ -287,55 +290,55 @@ class Exception
$this->line = __LINE__; // of throw clause $this->line = __LINE__; // of throw clause
$this->trace = debug_backtrace(); $this->trace = debug_backtrace();
$this->string = StringFormat($this); $this->string = StringFormat($this);
}
}
/** @return the message passed to the constructor /** @return the message passed to the constructor
*/ */
final public function getMessage()
{
return $this->message;
}
final public function getMessage()
{
return $this->message;
}
/** @return the code passed to the constructor /** @return the code passed to the constructor
*/ */
final public function getCode()
{
return $this->code;
}
final public function getCode()
{
return $this->code;
}
/** @return the name of the file where the exception was thrown /** @return the name of the file where the exception was thrown
*/ */
final public function getFile()
{
return $this->file;
}
final public function getFile()
{
return $this->file;
}
/** @return the line number where the exception was thrown /** @return the line number where the exception was thrown
*/ */
final public function getLine()
{
return $this->line;
}
final public function getLine()
{
return $this->line;
}
/** @return the stack trace as array /** @return the stack trace as array
*/ */
final public function getTrace()
{
return $this->trace;
}
final public function getTrace()
{
return $this->trace;
}
/** @return the stack trace as string /** @return the stack trace as string
*/ */
final public function getTraceAsString()
{
}
final public function getTraceAsString()
{
}
/** @return string represenation of exception /** @return string represenation of exception
*/ */
public function __toString()
{
return $this->string;
}
public function __toString()
{
return $this->string;
}
} }
/** @ingroup SPL /** @ingroup SPL
@ -368,7 +371,7 @@ class BadMethodCallException extends BadFunctionCallException
* @brief Exception that denotes a value not in the valid domain was used. * @brief Exception that denotes a value not in the valid domain was used.
* @since PHP 5.1 * @since PHP 5.1
* *
* This kind of exception should be used to inform about domain erors in
* This kind of exception should be used to inform about domain erors in
* mathematical sense. * mathematical sense.
* *
* @see RangeException * @see RangeException
@ -391,7 +394,7 @@ class InvalidArgumentException extends LogicException
* @brief Exception thrown when a parameter exceeds the allowed length. * @brief Exception thrown when a parameter exceeds the allowed length.
* @since PHP 5.1 * @since PHP 5.1
* *
* This can be used for strings length, array size, file size, number of
* This can be used for strings length, array size, file size, number of
* elements read from an Iterator and so on. * elements read from an Iterator and so on.
*/ */
class LengthException extends LogicException class LengthException extends LogicException
@ -411,7 +414,7 @@ class OutOfRangeException extends LogicException
} }
/** @ingroup SPL /** @ingroup SPL
* @brief Exception thrown for errors that are only detectable at runtime.
* @brief Exception thrown for errors that are only detectable at runtime.
* @since PHP 5.1 * @since PHP 5.1
*/ */
class RuntimeException extends Exception class RuntimeException extends Exception
@ -465,7 +468,7 @@ class UnderflowException extends RuntimeException
* *
* Typically this happens when a function calls another function and espects * Typically this happens when a function calls another function and espects
* the return value to be of a certain type or value not including arithmetic * the return value to be of a certain type or value not including arithmetic
* or buffer related errors.
* or buffer related errors.
* *
* @see InvalidArgumentException * @see InvalidArgumentException
*/ */
@ -504,14 +507,14 @@ interface ArrayAccess
* @since PHP 5.0 * @since PHP 5.0
* *
* Abstract base interface that cannot be implemented alone. Instead it * Abstract base interface that cannot be implemented alone. Instead it
* must be implemented by either IteratorAggregate or Iterator.
* must be implemented by either IteratorAggregate or Iterator.
* *
* @note Internal classes that implement this interface can be used in a
* @note Internal classes that implement this interface can be used in a
* foreach construct and do not need to implement IteratorAggregate or * foreach construct and do not need to implement IteratorAggregate or
* Iterator. * Iterator.
* *
* @note This is an engine internal interface which cannot be implemented * @note This is an engine internal interface which cannot be implemented
* in PHP scripts. Either IteratorAggregate or Iterator must be used
* in PHP scripts. Either IteratorAggregate or Iterator must be used
* instead. * instead.
*/ */
interface Traversable interface Traversable
@ -523,7 +526,7 @@ interface Traversable
* @since PHP 5.0 * @since PHP 5.0
* *
* @note This is an engine internal interface. * @note This is an engine internal interface.
*/
*/
interface IteratorAggregate extends Traversable interface IteratorAggregate extends Traversable
{ {
/** @return an Iterator for the implementing object. /** @return an Iterator for the implementing object.
@ -535,7 +538,7 @@ interface IteratorAggregate extends Traversable
* @brief Basic iterator * @brief Basic iterator
* @since PHP 5.0 * @since PHP 5.0
* *
* Interface for external iterators or objects that can be iterated
* Interface for external iterators or objects that can be iterated
* themselves internally. * themselves internally.
* *
* @note This is an engine internal interface. * @note This is an engine internal interface.
@ -577,8 +580,8 @@ interface Countable
/** @ingroup ZendEngine /** @ingroup ZendEngine
* @brief Interface for customized serializing * @brief Interface for customized serializing
* @since 5.1 * @since 5.1
*
* Classes that implement this interface no longer support __sleep() and
*
* Classes that implement this interface no longer support __sleep() and
* __wakeup(). The method serialized is called whenever an instance needs to * __wakeup(). The method serialized is called whenever an instance needs to
* be serialized. This does not invoke __destruct() or has any other side * be serialized. This does not invoke __destruct() or has any other side
* effect unless programmed inside the method. When the data is unserialized * effect unless programmed inside the method. When the data is unserialized
@ -592,10 +595,10 @@ interface Serializable
* @return string representation of the instance * @return string representation of the instance
*/ */
function serialize(); function serialize();
/** /**
* @note This is a constructor * @note This is a constructor
*
*
* @param $serialized data read from stream to construct the instance * @param $serialized data read from stream to construct the instance
*/ */
function unserialize($serialized); function unserialize($serialized);
@ -606,7 +609,7 @@ interface Serializable
* @since PHP 5.0 * @since PHP 5.0
* @version 1.2 * @version 1.2
* *
* This array wrapper allows to recursively iterate over Arrays and public
* This array wrapper allows to recursively iterate over Arrays and public
* Object properties. * Object properties.
* *
* @see ArrayIterator * @see ArrayIterator
@ -629,14 +632,14 @@ class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
function __construct($array, $flags = 0, $iterator_class = "ArrayIterator") {/**/} function __construct($array, $flags = 0, $iterator_class = "ArrayIterator") {/**/}
/** Set behavior flags. /** Set behavior flags.
*
*
* @param $flags bitmask as follows: * @param $flags bitmask as follows:
* 0 set: properties of the object have their normal functionality * 0 set: properties of the object have their normal functionality
* when accessed as list (var_dump, foreach, etc.) * when accessed as list (var_dump, foreach, etc.)
* 1 set: array indices can be accessed as properties in read/write * 1 set: array indices can be accessed as properties in read/write
*/ */
function setFlags($flags) {/**/} function setFlags($flags) {/**/}
/** @return current flags /** @return current flags
*/ */
function getFlags() {/**/} function getFlags() {/**/}
@ -644,27 +647,27 @@ class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
/** Sort the entries by values. /** Sort the entries by values.
*/ */
function asort() {/**/} function asort() {/**/}
/** Sort the entries by key. /** Sort the entries by key.
*/ */
function ksort() {/**/} function ksort() {/**/}
/** Sort the entries by values using user defined function. /** Sort the entries by values using user defined function.
*/ */
function uasort(mixed cmp_function) {/**/} function uasort(mixed cmp_function) {/**/}
/** Sort the entries by key using user defined function. /** Sort the entries by key using user defined function.
*/ */
function uksort(mixed cmp_function) {/**/} function uksort(mixed cmp_function) {/**/}
/** Sort the entries by values using "natural order" algorithm. /** Sort the entries by values using "natural order" algorithm.
*/ */
function natsort() {/**/} function natsort() {/**/}
/** Sort the entries by values using case insensitive "natural order" algorithm. /** Sort the entries by values using case insensitive "natural order" algorithm.
*/ */
function natcasesort() {/**/} function natcasesort() {/**/}
/** @param $array new array or object /** @param $array new array or object
*/ */
function exchangeArray($array) {/**/} function exchangeArray($array) {/**/}
@ -676,44 +679,44 @@ class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
/** @param $index offset to inspect /** @param $index offset to inspect
* @return whetehr offset $index esists * @return whetehr offset $index esists
*/
*/
function offsetExists($index) {/**/} function offsetExists($index) {/**/}
/** @param $index offset to return value for /** @param $index offset to return value for
* @return value at offset $index * @return value at offset $index
*/
*/
function offsetGet($index) {/**/} function offsetGet($index) {/**/}
/** @param $index index to set /** @param $index index to set
* @param $newval new value to store at offset $index * @param $newval new value to store at offset $index
*/
*/
function offsetSet($index, $newval) {/**/} function offsetSet($index, $newval) {/**/}
/** @param $index offset to unset /** @param $index offset to unset
*/
*/
function offsetUnset($index) {/**/} function offsetUnset($index) {/**/}
/** @param $value is appended as last element /** @param $value is appended as last element
* @warning this method cannot be called when the ArrayObject refers to
* @warning this method cannot be called when the ArrayObject refers to
* an object. * an object.
*/
*/
function append($value) {/**/} function append($value) {/**/}
/** @return a \b copy of the array /** @return a \b copy of the array
* @note when the ArrayObject refers to an object then this method
* @note when the ArrayObject refers to an object then this method
* returns an array of the public properties. * returns an array of the public properties.
*/
*/
function getArrayCopy() {/**/} function getArrayCopy() {/**/}
/** @return the number of elements in the array or the number of public /** @return the number of elements in the array or the number of public
* properties in the object. * properties in the object.
*/ */
function count() {/**/} function count() {/**/}
/* @param $iterator_class new class used in getIterator() /* @param $iterator_class new class used in getIterator()
*/ */
function setIteratorClass($itertor_class) {/**/} function setIteratorClass($itertor_class) {/**/}
/* @return class used in getIterator() /* @return class used in getIterator()
*/ */
function getIteratorClass() {/**/} function getIteratorClass() {/**/}
@ -727,9 +730,9 @@ class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
* This iterator allows to unset and modify values and keys while iterating * This iterator allows to unset and modify values and keys while iterating
* over Arrays and Objects. * over Arrays and Objects.
* *
* When you want to iterate over the same array multiple times you need to
* instanciate ArrayObject and let it create ArrayIterator instances that
* refer to it either by using foreach or by calling its getIterator()
* When you want to iterate over the same array multiple times you need to
* instanciate ArrayObject and let it create ArrayIterator instances that
* refer to it either by using foreach or by calling its getIterator()
* method manually. * method manually.
*/ */
class ArrayIterator implements SeekableIterator, ArrayAccess, Countable class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
@ -749,7 +752,7 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
function __construct($array, $flags = 0) {/**/} function __construct($array, $flags = 0) {/**/}
/** Set behavior flags. /** Set behavior flags.
*
*
* @param $flags bitmask as follows: * @param $flags bitmask as follows:
* 0 set: properties of the object have their normal functionality * 0 set: properties of the object have their normal functionality
* when accessed as list (var_dump, foreach, etc.) * when accessed as list (var_dump, foreach, etc.)
@ -765,56 +768,56 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
/** Sort the entries by values. /** Sort the entries by values.
*/ */
function asort() {/**/} function asort() {/**/}
/** Sort the entries by key. /** Sort the entries by key.
*/ */
function ksort() {/**/} function ksort() {/**/}
/** Sort the entries by values using user defined function. /** Sort the entries by values using user defined function.
*/ */
function uasort(mixed cmp_function) {/**/} function uasort(mixed cmp_function) {/**/}
/** Sort the entries by key using user defined function. /** Sort the entries by key using user defined function.
*/ */
function uksort(mixed cmp_function) {/**/} function uksort(mixed cmp_function) {/**/}
/** Sort the entries by values using "natural order" algorithm. /** Sort the entries by values using "natural order" algorithm.
*/ */
function natsort() {/**/} function natsort() {/**/}
/** Sort the entries by values using case insensitive "natural order" algorithm. /** Sort the entries by values using case insensitive "natural order" algorithm.
*/ */
function natcasesort() {/**/} function natcasesort() {/**/}
/** @param $index offset to inspect /** @param $index offset to inspect
* @return whetehr offset $index esists * @return whetehr offset $index esists
*/
*/
function offsetExists($index) {/**/} function offsetExists($index) {/**/}
/** @param $index offset to return value for /** @param $index offset to return value for
* @return value at offset $index * @return value at offset $index
*/
*/
function offsetGet($index) {/**/} function offsetGet($index) {/**/}
/** @param $index index to set /** @param $index index to set
* @param $newval new value to store at offset $index * @param $newval new value to store at offset $index
*/
*/
function offsetSet($index, $newval) {/**/} function offsetSet($index, $newval) {/**/}
/** @param $index offset to unset /** @param $index offset to unset
*/
*/
function offsetUnset($index) {/**/} function offsetUnset($index) {/**/}
/** @param $value is appended as last element /** @param $value is appended as last element
* @warning this method cannot be called when the ArrayIterator refers to
* @warning this method cannot be called when the ArrayIterator refers to
* an object. * an object.
*/
*/
function append($value) {/**/} function append($value) {/**/}
/** @return a \b copy of the array /** @return a \b copy of the array
* @note when the ArrayIterator refers to an object then this method
* @note when the ArrayIterator refers to an object then this method
* returns an array of the public properties. * returns an array of the public properties.
*/
*/
function getArrayCopy() {/**/} function getArrayCopy() {/**/}
/** @param $position offset to seek to /** @param $position offset to seek to
@ -829,16 +832,16 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
/** @copydoc Iterator::rewind */ /** @copydoc Iterator::rewind */
function rewind() {/**/} function rewind() {/**/}
/** @copydoc Iterator::valid */ /** @copydoc Iterator::valid */
function valid() {/**/} function valid() {/**/}
/** @copydoc Iterator::current */ /** @copydoc Iterator::current */
function current() {/**/} function current() {/**/}
/** @copydoc Iterator::key */ /** @copydoc Iterator::key */
function key() {/**/} function key() {/**/}
/** @copydoc Iterator::next */ /** @copydoc Iterator::next */
function next() {/**/} function next() {/**/}
} }
@ -847,7 +850,7 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
* @brief File info class * @brief File info class
* @since PHP 5.1.3 * @since PHP 5.1.3
*/ */
class SplFileInfo
class SplFileInfo
{ {
/** Construct a file info object /** Construct a file info object
* *
@ -857,11 +860,11 @@ class SplFileInfo
/** @return the path part only. /** @return the path part only.
*/ */
function getPath() {/**/}
function getPath() {/**/}
/** @return the filename only. /** @return the filename only.
*/ */
function getFilename() {/**/}
function getFilename() {/**/}
/** @return SplFileInfo created for the file /** @return SplFileInfo created for the file
* @param class_name name of class to instantiate * @param class_name name of class to instantiate
@ -871,7 +874,7 @@ class SplFileInfo
/** @return The current entries path and file name. /** @return The current entries path and file name.
*/ */
function getPathname() {/**/}
function getPathname() {/**/}
/** @return SplFileInfo created for the path /** @return SplFileInfo created for the path
* @param class_name name of class to instantiate * @param class_name name of class to instantiate
@ -933,7 +936,7 @@ class SplFileInfo
/** @return Whether the current entry is a directory. /** @return Whether the current entry is a directory.
*/ */
function isDir() {/**/}
function isDir() {/**/}
/** @return whether the current entry is a link. /** @return whether the current entry is a link.
*/ */
@ -946,7 +949,7 @@ class SplFileInfo
/** @return The resolved path /** @return The resolved path
*/ */
function getRealPath() {/**/} function getRealPath() {/**/}
/** @return getPathname() /** @return getPathname()
*/ */
function __toString() {/**/} function __toString() {/**/}
@ -956,7 +959,7 @@ class SplFileInfo
* @param mode open mode * @param mode open mode
* @param use_include_path whether to search include paths (don't use) * @param use_include_path whether to search include paths (don't use)
* @param context resource context to pased to open function * @param context resource context to pased to open function
* @throw RuntimeException if file cannot be opened (e.g. insufficient
* @throw RuntimeException if file cannot be opened (e.g. insufficient
* access rights). * access rights).
* @return The opened file as a SplFileObject instance * @return The opened file as a SplFileObject instance
* *
@ -966,7 +969,7 @@ class SplFileInfo
*/ */
function openFile($mode = 'r', $use_include_path = false, $context = NULL) {/**/} function openFile($mode = 'r', $use_include_path = false, $context = NULL) {/**/}
/** @param class_name name of class used with openFile(). Must be derived
/** @param class_name name of class used with openFile(). Must be derived
* from SPLFileObject. * from SPLFileObject.
*/ */
function setFileClass(string class_name = "SplFileObject") {/**/} function setFileClass(string class_name = "SplFileObject") {/**/}
@ -992,10 +995,10 @@ class DirectoryIterator extends SplFileInfo implements Iterator
/** @copydoc Iterator::rewind */ /** @copydoc Iterator::rewind */
function rewind() {/**/} function rewind() {/**/}
/** @copydoc Iterator::valid */ /** @copydoc Iterator::valid */
function valid() {/**/} function valid() {/**/}
/** @return index of entry /** @return index of entry
*/ */
function key() {/**/} function key() {/**/}
@ -1009,7 +1012,7 @@ class DirectoryIterator extends SplFileInfo implements Iterator
/** @return Whether the current entry is either '.' or '..'. /** @return Whether the current entry is either '.' or '..'.
*/ */
function isDot() {/**/}
function isDot() {/**/}
/** @return whether the current entry is a link. /** @return whether the current entry is a link.
*/ */
@ -1027,17 +1030,25 @@ class DirectoryIterator extends SplFileInfo implements Iterator
*/ */
class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveIterator class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveIterator
{ {
const CURRENT_AS_FILEINFO 0x00000010; /* make RecursiveDirectoryTree::current() return SplFileInfo */
const KEY_AS_FILENAME 0x00000020; /* make RecursiveDirectoryTree::key() return getFilename() */
const NEW_CURRENT_AND_KEY 0x00000030; /* CURRENT_AS_FILEINFO + KEY_AS_FILENAME */
const CURRENT_AS_FILEINFO 0x00000000; /* make RecursiveDirectoryTree::current() return SplFileInfo */
const CURRENT_AS_SELF 0x00000010; /* make RecursiveDirectoryTree::current() return getSelf() */
const CURRENT_AS_PATHNAME 0x00000020; /* make RecursiveDirectoryTree::current() return getPathname() */
const KEY_AS_PATHNAME 0x00000000; /* make RecursiveDirectoryTree::key() return getPathname() */
const KEY_AS_FILENAME 0x00000100; /* make RecursiveDirectoryTree::key() return getFilename() */
const NEW_CURRENT_AND_KEY 0x00000100; /* CURRENT_AS_FILEINFO + KEY_AS_FILENAME */
/** Construct a directory iterator from a path-string. /** Construct a directory iterator from a path-string.
* *
* @param $path directory to iterate. * @param $path directory to iterate.
* @param $flags open flags * @param $flags open flags
* - CURRENT_AS_FILEINFO * - CURRENT_AS_FILEINFO
* - CURRENT_AS_SELF
* - CURRENT_AS_PATHNAME
* - KEY_AS_PATHNAME
* - KEY_AS_FILENAME * - KEY_AS_FILENAME
* - NEW_CURRENT_AND_KEY
* - NEW_CURRENT_AND_KEY
*/ */
function __construct($path, $flags = 0) {/**/} function __construct($path, $flags = 0) {/**/}
@ -1051,11 +1062,11 @@ class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveI
/** @return whether the current is a directory (not '.' or '..'). /** @return whether the current is a directory (not '.' or '..').
*/ */
function hasChildren() {/**/}
function hasChildren() {/**/}
/** @return a RecursiveDirectoryIterator for the current entry. /** @return a RecursiveDirectoryIterator for the current entry.
*/ */
function getChildren() {/**/}
function getChildren() {/**/}
/** @return sub path only (without main path) /** @return sub path only (without main path)
*/ */
@ -1070,7 +1081,7 @@ class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveI
* @brief recursive SimpleXML_Element iterator * @brief recursive SimpleXML_Element iterator
* @since PHP 5.0 * @since PHP 5.0
* *
* The SimpleXMLIterator implements the RecursiveIterator interface. This
* The SimpleXMLIterator implements the RecursiveIterator interface. This
* allows iteration over all elements using foreach or an appropriate while * allows iteration over all elements using foreach or an appropriate while
* construct, just like SimpleXMLElement does. When using the foreach construct, * construct, just like SimpleXMLElement does. When using the foreach construct,
* you will also iterate over the subelements. For every element which * you will also iterate over the subelements. For every element which
@ -1081,11 +1092,11 @@ class SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator, C
{ {
/** @return whether the current node has sub nodes. /** @return whether the current node has sub nodes.
*/ */
function hasChildren() {/**/}
function hasChildren() {/**/}
/** @return a SimpleXMLIterator for the current node. /** @return a SimpleXMLIterator for the current node.
*/ */
function getChildren() {/**/}
function getChildren() {/**/}
/** @return number of elements/attributes seen with foreach() /** @return number of elements/attributes seen with foreach()
*/ */
@ -1093,16 +1104,16 @@ class SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator, C
/** @copydoc Iterator::rewind */ /** @copydoc Iterator::rewind */
function rewind() {/**/} function rewind() {/**/}
/** @copydoc Iterator::valid */ /** @copydoc Iterator::valid */
function valid() {/**/} function valid() {/**/}
/** @copydoc Iterator::current */ /** @copydoc Iterator::current */
function current() {/**/} function current() {/**/}
/** @copydoc Iterator::key */ /** @copydoc Iterator::key */
function key() {/**/} function key() {/**/}
/** @copydoc Iterator::next */ /** @copydoc Iterator::next */
function next() {/**/} function next() {/**/}
} }
@ -1121,7 +1132,7 @@ interface SplObserver
{ {
/** Called from the subject (i.e. when it's value has changed). /** Called from the subject (i.e. when it's value has changed).
* @param $subject the callee * @param $subject the callee
*/
:*/
function update(SplSubject $subject); function update(SplSubject $subject);
} }
@ -1134,16 +1145,16 @@ interface SplSubject
{ {
/** @param $observer new observer to attach /** @param $observer new observer to attach
*/ */
function attach(SplObserver $observer);
function attach(SplObserver $observer);
/** @param $observer existing observer to detach /** @param $observer existing observer to detach
* @note a non attached observer shouldn't result in a warning or similar * @note a non attached observer shouldn't result in a warning or similar
*/ */
function detach(SplObserver $observer);
function detach(SplObserver $observer);
/** Notify all observers /** Notify all observers
*/ */
function notify();
function notify();
} }
?> ?>
Loading…
Cancel
Save