Mercurial > hg > isophonics-drupal-site
annotate vendor/symfony/routing/Loader/DirectoryLoader.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 /* |
Chris@0 | 4 * This file is part of the Symfony package. |
Chris@0 | 5 * |
Chris@0 | 6 * (c) Fabien Potencier <fabien@symfony.com> |
Chris@0 | 7 * |
Chris@0 | 8 * For the full copyright and license information, please view the LICENSE |
Chris@0 | 9 * file that was distributed with this source code. |
Chris@0 | 10 */ |
Chris@0 | 11 |
Chris@0 | 12 namespace Symfony\Component\Routing\Loader; |
Chris@0 | 13 |
Chris@0 | 14 use Symfony\Component\Config\Loader\FileLoader; |
Chris@17 | 15 use Symfony\Component\Config\Resource\DirectoryResource; |
Chris@0 | 16 use Symfony\Component\Routing\RouteCollection; |
Chris@0 | 17 |
Chris@0 | 18 class DirectoryLoader extends FileLoader |
Chris@0 | 19 { |
Chris@0 | 20 /** |
Chris@0 | 21 * {@inheritdoc} |
Chris@0 | 22 */ |
Chris@0 | 23 public function load($file, $type = null) |
Chris@0 | 24 { |
Chris@0 | 25 $path = $this->locator->locate($file); |
Chris@0 | 26 |
Chris@0 | 27 $collection = new RouteCollection(); |
Chris@0 | 28 $collection->addResource(new DirectoryResource($path)); |
Chris@0 | 29 |
Chris@0 | 30 foreach (scandir($path) as $dir) { |
Chris@0 | 31 if ('.' !== $dir[0]) { |
Chris@0 | 32 $this->setCurrentDir($path); |
Chris@0 | 33 $subPath = $path.'/'.$dir; |
Chris@0 | 34 $subType = null; |
Chris@0 | 35 |
Chris@0 | 36 if (is_dir($subPath)) { |
Chris@0 | 37 $subPath .= '/'; |
Chris@0 | 38 $subType = 'directory'; |
Chris@0 | 39 } |
Chris@0 | 40 |
Chris@0 | 41 $subCollection = $this->import($subPath, $subType, false, $path); |
Chris@0 | 42 $collection->addCollection($subCollection); |
Chris@0 | 43 } |
Chris@0 | 44 } |
Chris@0 | 45 |
Chris@0 | 46 return $collection; |
Chris@0 | 47 } |
Chris@0 | 48 |
Chris@0 | 49 /** |
Chris@0 | 50 * {@inheritdoc} |
Chris@0 | 51 */ |
Chris@0 | 52 public function supports($resource, $type = null) |
Chris@0 | 53 { |
Chris@0 | 54 // only when type is forced to directory, not to conflict with AnnotationLoader |
Chris@0 | 55 |
Chris@0 | 56 return 'directory' === $type; |
Chris@0 | 57 } |
Chris@0 | 58 } |