$collection = new RouteCollection();
$collection->addResource(new DirectoryResource($dir, '/\.php$/'));
$files = iterator_to_array(new \RecursiveIteratorIterator(
- new RecursiveCallbackFilterIterator(
+ new \RecursiveCallbackFilterIterator(
new \RecursiveDirectoryIterator($dir),
function (\SplFileInfo $current) {
return '.' !== substr($current->getBasename(), 0, 1);
return is_dir($path) && (!$type || 'annotation' === $type);
}
}
-
-/**
- * @internal To be removed as RecursiveCallbackFilterIterator is available since PHP 5.4
- */
-class RecursiveCallbackFilterIterator extends \FilterIterator implements \RecursiveIterator
-{
- private $iterator;
- private $callback;
-
- public function __construct(\RecursiveIterator $iterator, $callback)
- {
- $this->iterator = $iterator;
- $this->callback = $callback;
- parent::__construct($iterator);
- }
-
- public function accept()
- {
- return call_user_func($this->callback, $this->current(), $this->key(), $this->iterator);
- }
-
- public function hasChildren()
- {
- return $this->iterator->hasChildren();
- }
-
- public function getChildren()
- {
- return new static($this->iterator->getChildren(), $this->callback);
- }
-}