Mercurial > hg > isophonics-drupal-site
annotate vendor/symfony/dependency-injection/Loader/DirectoryLoader.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
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\DependencyInjection\Loader; |
Chris@0 | 13 |
Chris@0 | 14 use Symfony\Component\Config\Resource\DirectoryResource; |
Chris@0 | 15 |
Chris@0 | 16 /** |
Chris@0 | 17 * DirectoryLoader is a recursive loader to go through directories. |
Chris@0 | 18 * |
Chris@0 | 19 * @author Sebastien Lavoie <seb@wemakecustom.com> |
Chris@0 | 20 */ |
Chris@0 | 21 class DirectoryLoader extends FileLoader |
Chris@0 | 22 { |
Chris@0 | 23 /** |
Chris@0 | 24 * {@inheritdoc} |
Chris@0 | 25 */ |
Chris@0 | 26 public function load($file, $type = null) |
Chris@0 | 27 { |
Chris@0 | 28 $file = rtrim($file, '/'); |
Chris@0 | 29 $path = $this->locator->locate($file); |
Chris@0 | 30 $this->container->addResource(new DirectoryResource($path)); |
Chris@0 | 31 |
Chris@0 | 32 foreach (scandir($path) as $dir) { |
Chris@0 | 33 if ('.' !== $dir[0]) { |
Chris@0 | 34 if (is_dir($path.'/'.$dir)) { |
Chris@0 | 35 $dir .= '/'; // append / to allow recursion |
Chris@0 | 36 } |
Chris@0 | 37 |
Chris@0 | 38 $this->setCurrentDir($path); |
Chris@0 | 39 |
Chris@0 | 40 $this->import($dir, null, false, $path); |
Chris@0 | 41 } |
Chris@0 | 42 } |
Chris@0 | 43 } |
Chris@0 | 44 |
Chris@0 | 45 /** |
Chris@0 | 46 * {@inheritdoc} |
Chris@0 | 47 */ |
Chris@0 | 48 public function supports($resource, $type = null) |
Chris@0 | 49 { |
Chris@0 | 50 if ('directory' === $type) { |
Chris@0 | 51 return true; |
Chris@0 | 52 } |
Chris@0 | 53 |
Chris@0 | 54 return null === $type && is_string($resource) && '/' === substr($resource, -1); |
Chris@0 | 55 } |
Chris@0 | 56 } |