1: <?php
2:
3: /*
4: * This file is part of the Symfony package.
5: *
6: * (c) Fabien Potencier <fabien@symfony.com>
7: *
8: * For the full copyright and license information, please view the LICENSE
9: * file that was distributed with this source code.
10: */
11:
12: namespace Symfony\Component\Finder\Iterator;
13:
14: use Symfony\Component\Finder\SplFileInfo;
15:
16: /**
17: * Extends the \RecursiveDirectoryIterator to support relative paths
18: *
19: * @author Victor Berchet <victor@suumit.com>
20: */
21: class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
22: {
23: public function __construct($path, $flags)
24: {
25: if ($flags & (self::CURRENT_AS_PATHNAME | self::CURRENT_AS_SELF)) {
26: throw new \RuntimeException('This iterator only support returning current as fileinfo.');
27: }
28:
29: parent::__construct($path, $flags);
30: }
31:
32: /**
33: * Return an instance of SplFileInfo with support for relative paths
34: *
35: * @return SplFileInfo File information
36: */
37: public function current()
38: {
39: return new SplFileInfo(parent::current()->getPathname(), $this->getSubPath(), $this->getSubPathname());
40: }
41: }
42: