cvs: php-src /ext/spl php_spl.c spl.php spl_iterators.c spl_iterators.h /ext/spl/examples directorygraphiterator.inc directorytreeiterator.inc
/ext/spl/internal cachingrecursiveiterator.inc recursivecachingiterator.inc /ext/spl/tests iterator_026.phpt
| From: | Marcus Boerger | Date: | Sun, 18 Sep 2005 16:51:24 +0000 |
| Subject: | cvs: php-src /ext/spl php_spl.c spl.php spl_iterators.c spl_iterators.h /ext/spl/examples directorygraphiterator.inc directorytreeiterator.inc /ext/spl/internal cachingrecursiveiterator.inc recursivecachingiterator.inc /ext/spl/tests iterator_026.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-33998@lists.php.net to get a copy of this message | ||
helly Sun Sep 18 12:51:24 2005 EDT
Added files:
/php-src/ext/spl/internal recursivecachingiterator.inc
Removed files:
/php-src/ext/spl/internal cachingrecursiveiterator.inc
Modified files:
/php-src/ext/spl php_spl.c spl.php spl_iterators.c spl_iterators.h
/php-src/ext/spl/examples directorygraphiterator.inc
directorytreeiterator.inc
/php-src/ext/spl/tests iterator_026.phpt
Log:
- Rename 'CachingRecursiveIterator' to 'RecursiveCachingIterator' so that
all of those follow the naming scheme 'Recursive<*>Iterator'
http://cvs.php.net/diff.php/php-src/ext/spl/php_spl.c?r1=1.64&r2=1.65&ty=u Index: php-src/ext/spl/php_spl.c diff -u php-src/ext/spl/php_spl.c:1.64 php-src/ext/spl/php_spl.c:1.65 --- php-src/ext/spl/php_spl.c:1.64 Sun Sep 18 07:34:33 2005 +++ php-src/ext/spl/php_spl.c Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_spl.c,v 1.64 2005/09/18 11:34:33 helly Exp $ */ +/* $Id: php_spl.c,v 1.65 2005/09/18 16:51:20 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -154,7 +154,6 @@ SPL_ADD_CLASS(BadFunctionCallException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(BadMethodCallException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(CachingIterator, z_list, sub, allow, ce_flags); \ - SPL_ADD_CLASS(CachingRecursiveIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(Countable, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(DirectoryIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(DomainException, z_list, sub, allow, ce_flags); \ @@ -173,9 +172,10 @@ SPL_ADD_CLASS(OverflowException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(ParentIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RangeException, z_list, sub, allow, ce_flags); \ + SPL_ADD_CLASS(RecursiveArrayIterator, z_list, sub, allow, ce_flags); \ + SPL_ADD_CLASS(RecursiveCachingIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveDirectoryIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveFilterIterator, z_list, sub, allow, ce_flags); \ - SPL_ADD_CLASS(RecursiveArrayIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveIteratorIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RuntimeException, z_list, sub, allow, ce_flags); \ http://cvs.php.net/diff.php/php-src/ext/spl/spl.php?r1=1.53&r2=1.54&ty=u Index: php-src/ext/spl/spl.php diff -u php-src/ext/spl/spl.php:1.53 php-src/ext/spl/spl.php:1.54 --- php-src/ext/spl/spl.php:1.53 Sun Sep 18 07:34:33 2005 +++ php-src/ext/spl/spl.php Sun Sep 18 12:51:20 2005 @@ -40,7 +40,7 @@ * - interface SeekableIterator implements Iterator * - class LimitIterator implements OuterIterator * - class CachingIterator implements OuterIterator - * - class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator + * - class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator * - class IteratorIterator implements OuterIterator * - class NoRewindIterator implements OuterIterator * - class EmptyIterator implements Iterator http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.c?r1=1.84&r2=1.85&ty=u Index: php-src/ext/spl/spl_iterators.c diff -u php-src/ext/spl/spl_iterators.c:1.84 php-src/ext/spl/spl_iterators.c:1.85 --- php-src/ext/spl/spl_iterators.c:1.84 Sun Sep 18 07:34:34 2005 +++ php-src/ext/spl/spl_iterators.c Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.c,v 1.84 2005/09/18 11:34:34 helly Exp $ */ +/* $Id: spl_iterators.c,v 1.85 2005/09/18 16:51:20 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -46,7 +46,7 @@ PHPAPI zend_class_entry *spl_ce_SeekableIterator; PHPAPI zend_class_entry *spl_ce_LimitIterator; PHPAPI zend_class_entry *spl_ce_CachingIterator; -PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +PHPAPI zend_class_entry *spl_ce_RecursiveCachingIterator; PHPAPI zend_class_entry *spl_ce_OuterIterator; PHPAPI zend_class_entry *spl_ce_IteratorIterator; PHPAPI zend_class_entry *spl_ce_NoRewindIterator; @@ -794,7 +794,7 @@ break; } case DIT_CachingIterator: - case DIT_CachingRecursiveIterator: { + case DIT_RecursiveCachingIterator: { long flags = CIT_CALL_TOSTRING; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &zobject, ce_inner, &flags) == FAILURE) { php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); @@ -906,7 +906,7 @@ efree(intern->current.str_key); intern->current.str_key = NULL; } - if (intern->dit_type == DIT_CachingIterator || intern->dit_type == DIT_CachingRecursiveIterator) { + if (intern->dit_type == DIT_CachingIterator || intern->dit_type == DIT_RecursiveCachingIterator) { if (intern->u.caching.zstr) { zval_ptr_dtor(&intern->u.caching.zstr); intern->u.caching.zstr = NULL; @@ -1193,7 +1193,7 @@ zval_ptr_dtor(&object->u.append.zarrayit); } - if (object->dit_type == DIT_CachingIterator || object->dit_type == DIT_CachingRecursiveIterator) { + if (object->dit_type == DIT_CachingIterator || object->dit_type == DIT_RecursiveCachingIterator) { if (object->u.caching.zcache) { zval_ptr_dtor(&object->u.caching.zcache); object->u.caching.zcache = NULL; @@ -1449,7 +1449,7 @@ } } /* Recursion ? */ - if (intern->dit_type == DIT_CachingRecursiveIterator) { + if (intern->dit_type == DIT_RecursiveCachingIterator) { zval *retval, *zchildren, zflags; zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "haschildren", &retval); if (zend_is_true(retval)) { @@ -1462,7 +1462,7 @@ } else { INIT_PZVAL(&zflags); ZVAL_LONG(&zflags, intern->u.caching.flags & CIT_PUBLIC); - spl_instantiate_arg_ex2(U_CLASS_ENTRY(spl_ce_CachingRecursiveIterator), &intern->u.caching.zchildren, 1, zchildren, &zflags TSRMLS_CC); + spl_instantiate_arg_ex2(U_CLASS_ENTRY(spl_ce_RecursiveCachingIterator), &intern->u.caching.zchildren, 1, zchildren, &zflags TSRMLS_CC); zval_ptr_dtor(&zchildren); } } @@ -1774,16 +1774,16 @@ {NULL, NULL, NULL} }; -/* {{{ proto CachingRecursiveIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING]) +/* {{{ proto RecursiveCachingIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING]) Create an iterator from a RecursiveIterator */ -SPL_METHOD(CachingRecursiveIterator, __construct) +SPL_METHOD(RecursiveCachingIterator, __construct) { - spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, U_CLASS_ENTRY(spl_ce_RecursiveIterator), DIT_CachingRecursiveIterator); + spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, U_CLASS_ENTRY(spl_ce_RecursiveIterator), DIT_RecursiveCachingIterator); } /* }}} */ -/* {{{ proto bolean CachingRecursiveIterator::hasChildren() +/* {{{ proto bolean RecursiveCachingIterator::hasChildren() Check whether the current element of the inner iterator has children */ -SPL_METHOD(CachingRecursiveIterator, hasChildren) +SPL_METHOD(RecursiveCachingIterator, hasChildren) { spl_dual_it_object *intern; @@ -1792,9 +1792,9 @@ RETURN_BOOL(intern->u.caching.zchildren); } /* }}} */ -/* {{{ proto CachingRecursiveIterator CachingRecursiveIterator::getChildren() - Return the inner iterator's children as a CachingRecursiveIterator */ -SPL_METHOD(CachingRecursiveIterator, getChildren) +/* {{{ proto RecursiveCachingIterator RecursiveCachingIterator::getChildren() + Return the inner iterator's children as a RecursiveCachingIterator */ +SPL_METHOD(RecursiveCachingIterator, getChildren) { spl_dual_it_object *intern; @@ -1813,10 +1813,10 @@ ZEND_ARG_INFO(0, flags) ZEND_END_ARG_INFO(); -static zend_function_entry spl_funcs_CachingRecursiveIterator[] = { - SPL_ME(CachingRecursiveIterator, __construct, arginfo_caching_rec_it___construct, ZEND_ACC_PUBLIC) - SPL_ME(CachingRecursiveIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingRecursiveIterator, getChildren, NULL, ZEND_ACC_PUBLIC) +static zend_function_entry spl_funcs_RecursiveCachingIterator[] = { + SPL_ME(RecursiveCachingIterator, __construct, arginfo_caching_rec_it___construct, ZEND_ACC_PUBLIC) + SPL_ME(RecursiveCachingIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(RecursiveCachingIterator, getChildren, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; @@ -2259,8 +2259,8 @@ REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CATCH_GET_CHILD", CIT_CATCH_GET_CHILD); REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "FULL_CACHE", CIT_FULL_CACHE); - REGISTER_SPL_SUB_CLASS_EX(CachingRecursiveIterator, CachingIterator, spl_dual_it_new, spl_funcs_CachingRecursiveIterator); - REGISTER_SPL_IMPLEMENTS(CachingRecursiveIterator, RecursiveIterator); + REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator, spl_dual_it_new, spl_funcs_RecursiveCachingIterator); + REGISTER_SPL_IMPLEMENTS(RecursiveCachingIterator, RecursiveIterator); REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, spl_funcs_IteratorIterator); REGISTER_SPL_ITERATOR(IteratorIterator); http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.h?r1=1.20&r2=1.21&ty=u Index: php-src/ext/spl/spl_iterators.h diff -u php-src/ext/spl/spl_iterators.h:1.20 php-src/ext/spl/spl_iterators.h:1.21 --- php-src/ext/spl/spl_iterators.h:1.20 Sun Sep 18 07:34:34 2005 +++ php-src/ext/spl/spl_iterators.h Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.h,v 1.20 2005/09/18 11:34:34 helly Exp $ */ +/* $Id: spl_iterators.h,v 1.21 2005/09/18 16:51:20 helly Exp $ */ #ifndef SPL_ITERATORS_H #define SPL_ITERATORS_H @@ -38,7 +38,7 @@ extern PHPAPI zend_class_entry *spl_ce_SeekableIterator; extern PHPAPI zend_class_entry *spl_ce_LimitIterator; extern PHPAPI zend_class_entry *spl_ce_CachingIterator; -extern PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveCachingIterator; extern PHPAPI zend_class_entry *spl_ce_OuterIterator; extern PHPAPI zend_class_entry *spl_ce_IteratorIterator; extern PHPAPI zend_class_entry *spl_ce_NoRewindIterator; @@ -55,7 +55,7 @@ DIT_Default = 0, DIT_LimitIterator, DIT_CachingIterator, - DIT_CachingRecursiveIterator, + DIT_RecursiveCachingIterator, DIT_IteratorIterator, DIT_NoRewindIterator, DIT_InfiniteIterator, http://cvs.php.net/diff.php/php-src/ext/spl/examples/directorygraphiterator.inc?r1=1.8&r2=1.9&ty=u Index: php-src/ext/spl/examples/directorygraphiterator.inc diff -u php-src/ext/spl/examples/directorygraphiterator.inc:1.8 php-src/ext/spl/examples/directorygraphiterator.inc:1.9 --- php-src/ext/spl/examples/directorygraphiterator.inc:1.8 Wed Sep 14 23:31:37 2005 +++ php-src/ext/spl/examples/directorygraphiterator.inc Sun Sep 18 12:51:24 2005 @@ -18,7 +18,7 @@ { function __construct($path) { - RecursiveIteratorIterator::__construct(new CachingRecursiveIterator(new ParentIterator(new RecursiveDirectoryIterator($path)), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); + RecursiveIteratorIterator::__construct(new RecursiveCachingIterator(new ParentIterator(new RecursiveDirectoryIterator($path)), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); } } http://cvs.php.net/diff.php/php-src/ext/spl/examples/directorytreeiterator.inc?r1=1.14&r2=1.15&ty=u Index: php-src/ext/spl/examples/directorytreeiterator.inc diff -u php-src/ext/spl/examples/directorytreeiterator.inc:1.14 php-src/ext/spl/examples/directorytreeiterator.inc:1.15 --- php-src/ext/spl/examples/directorytreeiterator.inc:1.14 Wed Sep 14 23:31:37 2005 +++ php-src/ext/spl/examples/directorytreeiterator.inc Sun Sep 18 12:51:24 2005 @@ -21,7 +21,7 @@ */ function __construct($path) { - parent::__construct(new CachingRecursiveIterator(new RecursiveDirectoryIterator($path), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); + parent::__construct(new RecursiveCachingIterator(new RecursiveDirectoryIterator($path), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); } /** @return the current element prefixed with ASCII graphics http://cvs.php.net/diff.php/php-src/ext/spl/tests/iterator_026.phpt?r1=1.1&r2=1.2&ty=u Index: php-src/ext/spl/tests/iterator_026.phpt diff -u php-src/ext/spl/tests/iterator_026.phpt:1.1 php-src/ext/spl/tests/iterator_026.phpt:1.2 --- php-src/ext/spl/tests/iterator_026.phpt:1.1 Sun Sep 18 07:34:36 2005 +++ php-src/ext/spl/tests/iterator_026.phpt Sun Sep 18 12:51:24 2005 @@ -6,7 +6,7 @@ $ar = array(1, 2, array(31, 32, array(331)), 4); $it = new RecursiveArrayIterator($ar); -$it = new CachingRecursiveIterator($it); +$it = new RecursiveCachingIterator($it); $it = new RecursiveIteratorIterator($it); foreach($it as $k=>$v) http://cvs.php.net/co.php/php-src/ext/spl/internal/recursivecachingiterator.inc?r=1.1&p=1 Index: php-src/ext/spl/internal/recursivecachingiterator.inc +++ php-src/ext/spl/internal/recursivecachingiterator.inc <?php /** @file recursivecachingiterator.inc * @ingroup SPL * @brief class RecursiveCachingIterator * @author Marcus Boerger * @date 2003 - 2005 * * SPL - Standard PHP Library */ /** * @brief Cached recursive iteration over another Iterator * @author Marcus Boerger * @version 1.2 * @since PHP 5.1 * * @see CachingIterator */ class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { private $hasChildren; private $getChildren; /** Construct from another iterator * * @param it Iterator to cache * @param flags Bitmask: * - CALL_TOSTRING (whether to call __toString() for every element) * - CATCH_GET_CHILD (whether to catch exceptions when trying to get childs) */ function __construct(RecursiveIterator $it, $flags = self::CALL_TOSTRING) { parent::__construct($it, $flags); } /** Rewind Iterator */ function rewind(); { $this->hasChildren = false; $this->getChildren = NULL; parent::rewind(); } /** Forward to next element if necessary then an Iterator for the Children * will be created. */ function next() { if ($this->hasChildren = $this->it->hasChildren()) { try { $child = $this->it->getChildren(); if (!$this->ref) { $this->ref = new ReflectionClass($this); } $this->getChildren = $ref->newInstance($child, $this->flags); } catch(Exception $e) { if (!$this->flags & self::CATCH_GET_CHILD) { throw $e; } $this->hasChildren = false; $this->getChildren = NULL; } } else { $this->getChildren = NULL; } parent::next(); } private $ref; /** @return whether the current element has children * @note The check whether the Iterator for the children can be created was * already executed. Hence when flag CATCH_GET_CHILD was given in * constructor this fucntion returns false so that getChildren does * not try to access those children. */ function hasChildren() { return $this->hasChildren; } /** @return An Iterator for the children */ function getChildren() { return $this->getChildren; } } ?>
http://cvs.php.net/diff.php/php-src/ext/spl/php_spl.c?r1=1.64&r2=1.65&ty=u Index: php-src/ext/spl/php_spl.c diff -u php-src/ext/spl/php_spl.c:1.64 php-src/ext/spl/php_spl.c:1.65 --- php-src/ext/spl/php_spl.c:1.64 Sun Sep 18 07:34:33 2005 +++ php-src/ext/spl/php_spl.c Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_spl.c,v 1.64 2005/09/18 11:34:33 helly Exp $ */ +/* $Id: php_spl.c,v 1.65 2005/09/18 16:51:20 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -154,7 +154,6 @@ SPL_ADD_CLASS(BadFunctionCallException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(BadMethodCallException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(CachingIterator, z_list, sub, allow, ce_flags); \ - SPL_ADD_CLASS(CachingRecursiveIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(Countable, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(DirectoryIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(DomainException, z_list, sub, allow, ce_flags); \ @@ -173,9 +172,10 @@ SPL_ADD_CLASS(OverflowException, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(ParentIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RangeException, z_list, sub, allow, ce_flags); \ + SPL_ADD_CLASS(RecursiveArrayIterator, z_list, sub, allow, ce_flags); \ + SPL_ADD_CLASS(RecursiveCachingIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveDirectoryIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveFilterIterator, z_list, sub, allow, ce_flags); \ - SPL_ADD_CLASS(RecursiveArrayIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RecursiveIteratorIterator, z_list, sub, allow, ce_flags); \ SPL_ADD_CLASS(RuntimeException, z_list, sub, allow, ce_flags); \ http://cvs.php.net/diff.php/php-src/ext/spl/spl.php?r1=1.53&r2=1.54&ty=u Index: php-src/ext/spl/spl.php diff -u php-src/ext/spl/spl.php:1.53 php-src/ext/spl/spl.php:1.54 --- php-src/ext/spl/spl.php:1.53 Sun Sep 18 07:34:33 2005 +++ php-src/ext/spl/spl.php Sun Sep 18 12:51:20 2005 @@ -40,7 +40,7 @@ * - interface SeekableIterator implements Iterator * - class LimitIterator implements OuterIterator * - class CachingIterator implements OuterIterator - * - class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator + * - class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator * - class IteratorIterator implements OuterIterator * - class NoRewindIterator implements OuterIterator * - class EmptyIterator implements Iterator http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.c?r1=1.84&r2=1.85&ty=u Index: php-src/ext/spl/spl_iterators.c diff -u php-src/ext/spl/spl_iterators.c:1.84 php-src/ext/spl/spl_iterators.c:1.85 --- php-src/ext/spl/spl_iterators.c:1.84 Sun Sep 18 07:34:34 2005 +++ php-src/ext/spl/spl_iterators.c Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.c,v 1.84 2005/09/18 11:34:34 helly Exp $ */ +/* $Id: spl_iterators.c,v 1.85 2005/09/18 16:51:20 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -46,7 +46,7 @@ PHPAPI zend_class_entry *spl_ce_SeekableIterator; PHPAPI zend_class_entry *spl_ce_LimitIterator; PHPAPI zend_class_entry *spl_ce_CachingIterator; -PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +PHPAPI zend_class_entry *spl_ce_RecursiveCachingIterator; PHPAPI zend_class_entry *spl_ce_OuterIterator; PHPAPI zend_class_entry *spl_ce_IteratorIterator; PHPAPI zend_class_entry *spl_ce_NoRewindIterator; @@ -794,7 +794,7 @@ break; } case DIT_CachingIterator: - case DIT_CachingRecursiveIterator: { + case DIT_RecursiveCachingIterator: { long flags = CIT_CALL_TOSTRING; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &zobject, ce_inner, &flags) == FAILURE) { php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); @@ -906,7 +906,7 @@ efree(intern->current.str_key); intern->current.str_key = NULL; } - if (intern->dit_type == DIT_CachingIterator || intern->dit_type == DIT_CachingRecursiveIterator) { + if (intern->dit_type == DIT_CachingIterator || intern->dit_type == DIT_RecursiveCachingIterator) { if (intern->u.caching.zstr) { zval_ptr_dtor(&intern->u.caching.zstr); intern->u.caching.zstr = NULL; @@ -1193,7 +1193,7 @@ zval_ptr_dtor(&object->u.append.zarrayit); } - if (object->dit_type == DIT_CachingIterator || object->dit_type == DIT_CachingRecursiveIterator) { + if (object->dit_type == DIT_CachingIterator || object->dit_type == DIT_RecursiveCachingIterator) { if (object->u.caching.zcache) { zval_ptr_dtor(&object->u.caching.zcache); object->u.caching.zcache = NULL; @@ -1449,7 +1449,7 @@ } } /* Recursion ? */ - if (intern->dit_type == DIT_CachingRecursiveIterator) { + if (intern->dit_type == DIT_RecursiveCachingIterator) { zval *retval, *zchildren, zflags; zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "haschildren", &retval); if (zend_is_true(retval)) { @@ -1462,7 +1462,7 @@ } else { INIT_PZVAL(&zflags); ZVAL_LONG(&zflags, intern->u.caching.flags & CIT_PUBLIC); - spl_instantiate_arg_ex2(U_CLASS_ENTRY(spl_ce_CachingRecursiveIterator), &intern->u.caching.zchildren, 1, zchildren, &zflags TSRMLS_CC); + spl_instantiate_arg_ex2(U_CLASS_ENTRY(spl_ce_RecursiveCachingIterator), &intern->u.caching.zchildren, 1, zchildren, &zflags TSRMLS_CC); zval_ptr_dtor(&zchildren); } } @@ -1774,16 +1774,16 @@ {NULL, NULL, NULL} }; -/* {{{ proto CachingRecursiveIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING]) +/* {{{ proto RecursiveCachingIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING]) Create an iterator from a RecursiveIterator */ -SPL_METHOD(CachingRecursiveIterator, __construct) +SPL_METHOD(RecursiveCachingIterator, __construct) { - spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, U_CLASS_ENTRY(spl_ce_RecursiveIterator), DIT_CachingRecursiveIterator); + spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, U_CLASS_ENTRY(spl_ce_RecursiveIterator), DIT_RecursiveCachingIterator); } /* }}} */ -/* {{{ proto bolean CachingRecursiveIterator::hasChildren() +/* {{{ proto bolean RecursiveCachingIterator::hasChildren() Check whether the current element of the inner iterator has children */ -SPL_METHOD(CachingRecursiveIterator, hasChildren) +SPL_METHOD(RecursiveCachingIterator, hasChildren) { spl_dual_it_object *intern; @@ -1792,9 +1792,9 @@ RETURN_BOOL(intern->u.caching.zchildren); } /* }}} */ -/* {{{ proto CachingRecursiveIterator CachingRecursiveIterator::getChildren() - Return the inner iterator's children as a CachingRecursiveIterator */ -SPL_METHOD(CachingRecursiveIterator, getChildren) +/* {{{ proto RecursiveCachingIterator RecursiveCachingIterator::getChildren() + Return the inner iterator's children as a RecursiveCachingIterator */ +SPL_METHOD(RecursiveCachingIterator, getChildren) { spl_dual_it_object *intern; @@ -1813,10 +1813,10 @@ ZEND_ARG_INFO(0, flags) ZEND_END_ARG_INFO(); -static zend_function_entry spl_funcs_CachingRecursiveIterator[] = { - SPL_ME(CachingRecursiveIterator, __construct, arginfo_caching_rec_it___construct, ZEND_ACC_PUBLIC) - SPL_ME(CachingRecursiveIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingRecursiveIterator, getChildren, NULL, ZEND_ACC_PUBLIC) +static zend_function_entry spl_funcs_RecursiveCachingIterator[] = { + SPL_ME(RecursiveCachingIterator, __construct, arginfo_caching_rec_it___construct, ZEND_ACC_PUBLIC) + SPL_ME(RecursiveCachingIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(RecursiveCachingIterator, getChildren, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; @@ -2259,8 +2259,8 @@ REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CATCH_GET_CHILD", CIT_CATCH_GET_CHILD); REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "FULL_CACHE", CIT_FULL_CACHE); - REGISTER_SPL_SUB_CLASS_EX(CachingRecursiveIterator, CachingIterator, spl_dual_it_new, spl_funcs_CachingRecursiveIterator); - REGISTER_SPL_IMPLEMENTS(CachingRecursiveIterator, RecursiveIterator); + REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator, spl_dual_it_new, spl_funcs_RecursiveCachingIterator); + REGISTER_SPL_IMPLEMENTS(RecursiveCachingIterator, RecursiveIterator); REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, spl_funcs_IteratorIterator); REGISTER_SPL_ITERATOR(IteratorIterator); http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.h?r1=1.20&r2=1.21&ty=u Index: php-src/ext/spl/spl_iterators.h diff -u php-src/ext/spl/spl_iterators.h:1.20 php-src/ext/spl/spl_iterators.h:1.21 --- php-src/ext/spl/spl_iterators.h:1.20 Sun Sep 18 07:34:34 2005 +++ php-src/ext/spl/spl_iterators.h Sun Sep 18 12:51:20 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.h,v 1.20 2005/09/18 11:34:34 helly Exp $ */ +/* $Id: spl_iterators.h,v 1.21 2005/09/18 16:51:20 helly Exp $ */ #ifndef SPL_ITERATORS_H #define SPL_ITERATORS_H @@ -38,7 +38,7 @@ extern PHPAPI zend_class_entry *spl_ce_SeekableIterator; extern PHPAPI zend_class_entry *spl_ce_LimitIterator; extern PHPAPI zend_class_entry *spl_ce_CachingIterator; -extern PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveCachingIterator; extern PHPAPI zend_class_entry *spl_ce_OuterIterator; extern PHPAPI zend_class_entry *spl_ce_IteratorIterator; extern PHPAPI zend_class_entry *spl_ce_NoRewindIterator; @@ -55,7 +55,7 @@ DIT_Default = 0, DIT_LimitIterator, DIT_CachingIterator, - DIT_CachingRecursiveIterator, + DIT_RecursiveCachingIterator, DIT_IteratorIterator, DIT_NoRewindIterator, DIT_InfiniteIterator, http://cvs.php.net/diff.php/php-src/ext/spl/examples/directorygraphiterator.inc?r1=1.8&r2=1.9&ty=u Index: php-src/ext/spl/examples/directorygraphiterator.inc diff -u php-src/ext/spl/examples/directorygraphiterator.inc:1.8 php-src/ext/spl/examples/directorygraphiterator.inc:1.9 --- php-src/ext/spl/examples/directorygraphiterator.inc:1.8 Wed Sep 14 23:31:37 2005 +++ php-src/ext/spl/examples/directorygraphiterator.inc Sun Sep 18 12:51:24 2005 @@ -18,7 +18,7 @@ { function __construct($path) { - RecursiveIteratorIterator::__construct(new CachingRecursiveIterator(new ParentIterator(new RecursiveDirectoryIterator($path)), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); + RecursiveIteratorIterator::__construct(new RecursiveCachingIterator(new ParentIterator(new RecursiveDirectoryIterator($path)), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); } } http://cvs.php.net/diff.php/php-src/ext/spl/examples/directorytreeiterator.inc?r1=1.14&r2=1.15&ty=u Index: php-src/ext/spl/examples/directorytreeiterator.inc diff -u php-src/ext/spl/examples/directorytreeiterator.inc:1.14 php-src/ext/spl/examples/directorytreeiterator.inc:1.15 --- php-src/ext/spl/examples/directorytreeiterator.inc:1.14 Wed Sep 14 23:31:37 2005 +++ php-src/ext/spl/examples/directorytreeiterator.inc Sun Sep 18 12:51:24 2005 @@ -21,7 +21,7 @@ */ function __construct($path) { - parent::__construct(new CachingRecursiveIterator(new RecursiveDirectoryIterator($path), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); + parent::__construct(new RecursiveCachingIterator(new RecursiveDirectoryIterator($path), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1); } /** @return the current element prefixed with ASCII graphics http://cvs.php.net/diff.php/php-src/ext/spl/tests/iterator_026.phpt?r1=1.1&r2=1.2&ty=u Index: php-src/ext/spl/tests/iterator_026.phpt diff -u php-src/ext/spl/tests/iterator_026.phpt:1.1 php-src/ext/spl/tests/iterator_026.phpt:1.2 --- php-src/ext/spl/tests/iterator_026.phpt:1.1 Sun Sep 18 07:34:36 2005 +++ php-src/ext/spl/tests/iterator_026.phpt Sun Sep 18 12:51:24 2005 @@ -6,7 +6,7 @@ $ar = array(1, 2, array(31, 32, array(331)), 4); $it = new RecursiveArrayIterator($ar); -$it = new CachingRecursiveIterator($it); +$it = new RecursiveCachingIterator($it); $it = new RecursiveIteratorIterator($it); foreach($it as $k=>$v) http://cvs.php.net/co.php/php-src/ext/spl/internal/recursivecachingiterator.inc?r=1.1&p=1 Index: php-src/ext/spl/internal/recursivecachingiterator.inc +++ php-src/ext/spl/internal/recursivecachingiterator.inc <?php /** @file recursivecachingiterator.inc * @ingroup SPL * @brief class RecursiveCachingIterator * @author Marcus Boerger * @date 2003 - 2005 * * SPL - Standard PHP Library */ /** * @brief Cached recursive iteration over another Iterator * @author Marcus Boerger * @version 1.2 * @since PHP 5.1 * * @see CachingIterator */ class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { private $hasChildren; private $getChildren; /** Construct from another iterator * * @param it Iterator to cache * @param flags Bitmask: * - CALL_TOSTRING (whether to call __toString() for every element) * - CATCH_GET_CHILD (whether to catch exceptions when trying to get childs) */ function __construct(RecursiveIterator $it, $flags = self::CALL_TOSTRING) { parent::__construct($it, $flags); } /** Rewind Iterator */ function rewind(); { $this->hasChildren = false; $this->getChildren = NULL; parent::rewind(); } /** Forward to next element if necessary then an Iterator for the Children * will be created. */ function next() { if ($this->hasChildren = $this->it->hasChildren()) { try { $child = $this->it->getChildren(); if (!$this->ref) { $this->ref = new ReflectionClass($this); } $this->getChildren = $ref->newInstance($child, $this->flags); } catch(Exception $e) { if (!$this->flags & self::CATCH_GET_CHILD) { throw $e; } $this->hasChildren = false; $this->getChildren = NULL; } } else { $this->getChildren = NULL; } parent::next(); } private $ref; /** @return whether the current element has children * @note The check whether the Iterator for the children can be created was * already executed. Hence when flag CATCH_GET_CHILD was given in * constructor this fucntion returns false so that getChildren does * not try to access those children. */ function hasChildren() { return $this->hasChildren; } /** @return An Iterator for the children */ function getChildren() { return $this->getChildren; } } ?>