helly Sat May 8 08:35:22 2004 EDT Added files: /php-src/ext/spl/examples regexfindfile.inc
Modified files: /php-src/ext/spl/examples appenditerator.inc infiniteiterator.inc searchiterator.inc Log: - Docu updates - Add missing example file - Fix aggregation of inner iterators in examples http://cvs.php.net/diff.php/php-src/ext/spl/examples/appenditerator.inc?r1=1.5&r2=1.6&ty=u Index: php-src/ext/spl/examples/appenditerator.inc diff -u php-src/ext/spl/examples/appenditerator.inc:1.5 php-src/ext/spl/examples/appenditerator.inc:1.6 --- php-src/ext/spl/examples/appenditerator.inc:1.5 Thu Apr 29 18:25:44 2004 +++ php-src/ext/spl/examples/appenditerator.inc Sat May 8 08:35:21 2004 @@ -1,30 +1,40 @@ <?php -/** +/** \ingroup Examples * @brief Iterator that iterates over several iterators one after the other * @author Marcus Boerger * @version 1.0 - * */ class AppendIterator implements Iterator { - protected $iterators; + /** @internal array of inner iterators */ + private $iterators; + /** Construct an empty AppendIterator + */ function __construct() { $this->iterators = new ArrayIterator(); } - + + /** Append an Iterator + * @param $it Iterator to append + */ function append(Iterator $it) { $this->iterators->append($it); } + /** @return the current inner Iterator + */ function getInnerIterator() { return $this->iterators->current(); } + /** Rewind to the first element of the first inner Iterator. + * @return void + */ function rewind() { $this->iterators->rewind(); @@ -34,11 +44,15 @@ } } + /** @return whether the current element is valid + */ function valid() { return $this->iterators->valid() && $this->getInnerIterator()->valid(); } + /** @return the current value if it is valid or \c NULL + */ function current() { /* Using $this->valid() would be exactly the same; it would omit @@ -48,11 +62,17 @@ return $this->iterators->valid() ? $this->getInnerIterator()->current() : NULL; } + /** @return the current key if it is valid or \c NULL + */ function key() { return $this->iterators->valid() ? $this->getInnerIterator()->key() : NULL; } - + + /** Move to the next element. If this means to another Iterator that + * rewind that Iterator. + * @return void + */ function next() { if (!$this->iterators->valid()) @@ -75,6 +95,13 @@ $this->iterators->next(); } } + + /** Aggregates the inner iterator + */ + function __call($func, $params) + { + return call_user_func_array(array($this->getInnerIterator(), $func), $params); + } } ?> \ No newline at end of file http://cvs.php.net/diff.php/php-src/ext/spl/examples/infiniteiterator.inc?r1=1.2&r2=1.3&ty=u Index: php-src/ext/spl/examples/infiniteiterator.inc diff -u php-src/ext/spl/examples/infiniteiterator.inc:1.2 php-src/ext/spl/examples/infiniteiterator.inc:1.3 --- php-src/ext/spl/examples/infiniteiterator.inc:1.2 Sat May 8 08:24:15 2004 +++ php-src/ext/spl/examples/infiniteiterator.inc Sat May 8 08:35:21 2004 @@ -86,7 +86,7 @@ */ function __call($func, $params) { - return call_user_func_array(array($this->getSubIterator(), $func), $params); + return call_user_func_array(array($this->it, $func), $params); } } http://cvs.php.net/diff.php/php-src/ext/spl/examples/searchiterator.inc?r1=1.4&r2=1.5&ty=u Index: php-src/ext/spl/examples/searchiterator.inc diff -u php-src/ext/spl/examples/searchiterator.inc:1.4 php-src/ext/spl/examples/searchiterator.inc:1.5 --- php-src/ext/spl/examples/searchiterator.inc:1.4 Sat May 8 08:24:15 2004 +++ php-src/ext/spl/examples/searchiterator.inc Sat May 8 08:35:21 2004 @@ -42,7 +42,7 @@ */ function __call($func, $params) { - return call_user_func_array(array($this->getSubIterator(), $func), $params); + return call_user_func_array(array($this->getInnerIterator(), $func), $params); } } http://cvs.php.net/co.php/php-src/ext/spl/examples/regexfindfile.inc?r=1.1&p=1 Index: php-src/ext/spl/examples/regexfindfile.inc +++ php-src/ext/spl/examples/regexfindfile.inc <?php /** * @brief Find files by regular expression * @author Marcus Boerger * @version 1.1 * */ class RegexFindFile extends FindFile { /** Construct from path and regular expression * * @param $path the directory to search in * If path contains ';' then this parameter is split and every * part of it is used as separate directory. * @param $regex perl style regular expression to find files with */ function __construct($path, $regex) { parent::__construct($path, $regex); } /** @return whether the current filename matches the regular expression. */ function accept() { return preg_match($this->getSearch(), $this->current()); } } ?> -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php