26 lines
704 B
PHP
26 lines
704 B
PHP
<?php
|
|
Doctrine::autoload('Doctrine_Iterator');
|
|
|
|
class Doctrine_Iterator_Expandable extends Doctrine_Iterator {
|
|
public function valid() {
|
|
if($this->index < $this->count)
|
|
return true;
|
|
elseif($this->index == $this->count) {
|
|
|
|
$coll = $this->collection->expand($this->index);
|
|
|
|
if($coll instanceof Doctrine_Collection) {
|
|
$count = count($coll);
|
|
if($count > 0) {
|
|
$this->keys = array_merge($this->keys, $coll->getKeys());
|
|
$this->count += $count;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|