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;
}
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php