blob: 0f3e3a7912a166d6d731a3fb280dac201883af7e [file] [log] [blame]
<?php
/**
* This file is part of vfsStream.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @package org\bovigo\vfs
*/
namespace org\bovigo\vfs;
/**
* Iterator for children of a directory container.
*/
class vfsStreamContainerIterator implements \Iterator
{
/**
* list of children from container to iterate over
*
* @type vfsStreamContent[]
*/
protected $children;
/**
* constructor
*
* @param vfsStreamContent[] $children
*/
public function __construct(array $children)
{
$this->children = $children;
reset($this->children);
}
/**
* resets children pointer
*/
public function rewind()
{
reset($this->children);
}
/**
* returns the current child
*
* @return vfsStreamContent
*/
public function current()
{
$child = current($this->children);
if (false === $child) {
return null;
}
return $child;
}
/**
* returns the name of the current child
*
* @return string
*/
public function key()
{
$child = current($this->children);
if (false === $child) {
return null;
}
return $child->getName();
}
/**
* iterates to next child
*/
public function next()
{
next($this->children);
}
/**
* checks if the current value is valid
*
* @return bool
*/
public function valid()
{
return (false !== current($this->children));
}
}
?>