mirror of
https://github.com/php/php-src.git
synced 2024-11-25 19:05:31 +08:00
- Update docu
This commit is contained in:
parent
07ed0872fb
commit
4dbf6a530d
@ -69,7 +69,8 @@ WARN_LOGFILE =
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = spl.php \
|
||||
examples
|
||||
examples \
|
||||
internal
|
||||
FILE_PATTERNS = *.inc \
|
||||
*.php
|
||||
RECURSIVE = NO
|
||||
|
@ -14,7 +14,7 @@
|
||||
* @author Marcus Boerger
|
||||
* @version 1.1
|
||||
*
|
||||
* @See CachingIterator
|
||||
* @see CachingIterator
|
||||
*/
|
||||
class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator
|
||||
{
|
||||
|
@ -17,6 +17,10 @@
|
||||
* Instances of this class act as a filter around iterators. In other words
|
||||
* you can put an iterator into the constructor and the instance will only
|
||||
* return selected (accepted) elements.
|
||||
*
|
||||
* The only thing that needs to be done to make this work is implementing
|
||||
* method accept(). Typically this invloves reading the current element or
|
||||
* key of the inner Iterator and checking whether it is acceptable.
|
||||
*/
|
||||
abstract class FilterIterator implements OuterIterator
|
||||
{
|
||||
|
@ -14,6 +14,11 @@
|
||||
* @author Marcus Boerger
|
||||
* @version 1.1
|
||||
*
|
||||
* A class that starts iteration at a certain offset and only iterates over
|
||||
* a specified amount of elements.
|
||||
*
|
||||
* This class uses SeekableIterator::seek() if available and rewind() plus
|
||||
* a skip loop otehrwise.
|
||||
*/
|
||||
class LimitIterator implements OuterIterator
|
||||
{
|
||||
|
@ -21,6 +21,7 @@ interface RecursiveIterator implements Iterator
|
||||
function hasChildren();
|
||||
|
||||
/** @return the sub iterator for the current element
|
||||
* @note The returned object must implement RecursiveIterator.
|
||||
*/
|
||||
function getChildren();
|
||||
}
|
||||
|
@ -18,6 +18,9 @@ define('RIT_CHILD_FIRST', 2);
|
||||
* @author Marcus Boerger
|
||||
* @version 1.1
|
||||
*
|
||||
* The objects of this class are created by instances of RecursiveIterator.
|
||||
* Elements of those iterators may be traversable themselves. If so these
|
||||
* sub elements are recursed into.
|
||||
*/
|
||||
class RecursiveIteratorIterator implements OuterIterator
|
||||
{
|
||||
@ -63,7 +66,7 @@ class RecursiveIteratorIterator implements OuterIterator
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @reutrn current key
|
||||
/** @return current key
|
||||
*/
|
||||
function key()
|
||||
{
|
||||
|
202
ext/spl/spl.php
202
ext/spl/spl.php
@ -400,57 +400,6 @@ interface Iterator extends Traversable
|
||||
function valid();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Recursive iterator
|
||||
*
|
||||
* Interface for recursive traversal to be used with
|
||||
* RecursiveIteratorIterator.
|
||||
*/
|
||||
interface RecursiveIterator extends Iterator
|
||||
{
|
||||
/** @return whether current element can be iterated itself.
|
||||
*/
|
||||
function hasChildren();
|
||||
|
||||
/** @return an object that recursively iterates the current element.
|
||||
* This object must implement RecursiveIterator.
|
||||
*/
|
||||
function getChildren();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Class for recursive traversal.
|
||||
*
|
||||
* The objects of this class are created by instances of RecursiveIterator.
|
||||
* Elements of those iterators may be traversable themselves. If so these
|
||||
* sub elements are recursed into.
|
||||
*/
|
||||
class RecursiveIteratorIterator implements Iterator
|
||||
{
|
||||
/** Construct an instance form a RecursiveIterator.
|
||||
*
|
||||
* @param $iterator inner root iterator
|
||||
* @param $mode one of
|
||||
* - RIT_LEAVES_ONLY do not return elements that can be recursed.
|
||||
* - RIT_SELF_FIRST show elements before their sub elements.
|
||||
* - RIT_CHILD_FIRST show elements after their sub elements.
|
||||
*
|
||||
* @note If you want to see only those elements which have sub elements then
|
||||
* use a ParentIterator.
|
||||
*/
|
||||
function __construct(RecursiveIterator $iterator, $mode);
|
||||
|
||||
/** @return the level of recursion (>=0).
|
||||
*/
|
||||
function getDepth();
|
||||
|
||||
/** @param $level the level of the sub iterator to return.
|
||||
* @return the current inner sub iterator or the iterator at the
|
||||
* specified $level.
|
||||
*/
|
||||
function getSubIterator([$level]);
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief This Interface allows to hook into the global count() function.
|
||||
*/
|
||||
@ -461,21 +410,6 @@ interface Countable
|
||||
function count();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Seekable iterator
|
||||
*
|
||||
* This interface is used to optimize LimitIterator functionality. but it
|
||||
* may also be used for other situations where seeking a specific offset is
|
||||
* required and easily possible.
|
||||
*/
|
||||
interface SeekableIterator extends Iterator
|
||||
{
|
||||
/** Seek to a specific position if available or throw an exception.
|
||||
* @param $position offset to seek to.
|
||||
*/
|
||||
function seek($position);
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief An Array wrapper
|
||||
*
|
||||
@ -596,142 +530,6 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
|
||||
function count();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief An iterator that filters other iterators
|
||||
*
|
||||
* Iterator that wrapps around another iterator and only returns selected
|
||||
* elements of the inner iterator. The only thing that needs to be done to
|
||||
* make this work is implementing method accept(). Typically this invloves
|
||||
* reading the current element or key of the inner Iterator and checking
|
||||
* whether it is acceptable.
|
||||
*/
|
||||
abstract class FilterIterator implements Iterator
|
||||
{
|
||||
/** Construct an instance form a Iterator.
|
||||
*
|
||||
* @param $iterator inner iterator
|
||||
*/
|
||||
function __construct(Iterator $iterator);
|
||||
|
||||
/** @return whether the current element of the inner iterator should be
|
||||
* used as a current element of this iterator or if it should be skipped.
|
||||
*/
|
||||
abstract function accept();
|
||||
|
||||
/** @return the inner Iterator
|
||||
*/
|
||||
function getInnerIterator();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Limiting iterator
|
||||
*
|
||||
* A class that starts iteration at a certain offset and only iterates over
|
||||
* a specified amount of elements.
|
||||
*
|
||||
* This class uses SeekableIterator::seek() if available and rewind() plus
|
||||
* a skip loop otehrwise.
|
||||
*/
|
||||
class LimitIterator implements Iterator
|
||||
{
|
||||
/** Construct an instance form a Iterator.
|
||||
*
|
||||
* @param $iterator inner iterator
|
||||
* @param $offset starting position (zero based)
|
||||
* @param $count amount of elements returned, if available)
|
||||
*/
|
||||
function __construct(Iterator $iterator, $offset = 0, $count = -1);
|
||||
|
||||
/** @return whether the current element of the inner iterator should be
|
||||
* used as a current element of this iterator or if it should be skipped.
|
||||
*/
|
||||
abstract function accept();
|
||||
|
||||
/** @return the inner Iterator
|
||||
*/
|
||||
function getInnerIterator();
|
||||
|
||||
/** Seek to a specific position if available or throw an exception.
|
||||
* If the inner iterator is an instance of SeekableIterator its seek()
|
||||
* method will be used. Otherwise the iterator will be rewound if
|
||||
* necessary and then manually advanced element by element.
|
||||
*
|
||||
* @param $position index to seek to.
|
||||
*/
|
||||
function seek($position);
|
||||
|
||||
/** @return the current position (zero based)
|
||||
*/
|
||||
function getPosition();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Iterator that shows only parents
|
||||
*
|
||||
* A recursive iterator that only returns elements that themselves can be
|
||||
* trversed.
|
||||
*/
|
||||
class ParentIterator extends FilterIterator implements RecursiveIterator
|
||||
{
|
||||
/** Construct an instance form a RecursiveIterator.
|
||||
*
|
||||
* @param $iterator inner iterator
|
||||
*/
|
||||
function __construct(RecursiveIterator $iterator);
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Caching iterator
|
||||
*
|
||||
* This Iterator allways reads one ahead. That allows it to know whether
|
||||
* more elements are available.
|
||||
*/
|
||||
class CachingIterator implements Iterator
|
||||
{
|
||||
/** Construct an instance form a RecursiveIterator.
|
||||
*
|
||||
* @param $iterator inner iterator
|
||||
* @param flags Bitmask:
|
||||
* - CIT_CALL_TOSTRING whether to call __toString() for
|
||||
* every element. This is optional since it is not
|
||||
* always used nad takes an additional fcall.
|
||||
*/
|
||||
function __construct(Iterator $iterator, $flags = CIT_CALL_TOSTRING);
|
||||
|
||||
/** @return whether the inner iterator is valid. That is this iterator
|
||||
* is valid and has one more element.
|
||||
*/
|
||||
function valid();
|
||||
|
||||
/** @return The last value from the inner iterators __toString() or
|
||||
* (string) conversion. The value is only fetched when the __constructor
|
||||
* was called with $getStrVal = true.
|
||||
*/
|
||||
function __tostring();
|
||||
|
||||
/** @return the inner Iterator
|
||||
*/
|
||||
function getInnerIterator();
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief The recursive version of the CachingIterator.
|
||||
*/
|
||||
class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator
|
||||
{
|
||||
/** Construct an instance form a RecursiveIterator.
|
||||
*
|
||||
* @param $iterator inner iterator
|
||||
* @param $flags Bitmask:
|
||||
* - CIT_CALL_TOSTRING whether to call __toString() for
|
||||
* every element. This is optional since it is not
|
||||
* always used nad takes an additional fcall.
|
||||
* - CIT_CATCH_GET_CHILD whether to catch exceptions when
|
||||
* trying to get childs)
|
||||
*/
|
||||
function __construct(RecursiveIterator $iterator, $flags = CIT_CALL_TOSTRING);
|
||||
}
|
||||
|
||||
/** @ingroup SPL
|
||||
* @brief Directory iterator
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user