Viewing file: DirectoryLoader.php (1.46 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Symfony\Component\Routing\Loader;
use Symfony\Component\Config\Loader\FileLoader; use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Config\Resource\DirectoryResource;
class DirectoryLoader extends FileLoader { /** * {@inheritdoc} */ public function load($file, $type = null) { $path = $this->locator->locate($file);
$collection = new RouteCollection(); $collection->addResource(new DirectoryResource($path));
foreach (scandir($path) as $dir) { if ('.' !== $dir[0]) { $this->setCurrentDir($path); $subPath = $path.'/'.$dir; $subType = null;
if (is_dir($subPath)) { $subPath .= '/'; $subType = 'directory'; }
$subCollection = $this->import($subPath, $subType, false, $path); $collection->addCollection($subCollection); } }
return $collection; }
/** * {@inheritdoc} */ public function supports($resource, $type = null) { // only when type is forced to directory, not to conflict with AnnotationLoader
return 'directory' === $type; } }
|