123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?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\Config\Loader;
- /**
- * LoaderResolver selects a loader for a given resource.
- *
- * A resource can be anything (e.g. a full path to a config file or a Closure).
- * Each loader determines whether it can load a resource and how.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
- class LoaderResolver implements LoaderResolverInterface
- {
- /**
- * @var LoaderInterface[] An array of LoaderInterface objects
- */
- private $loaders = array();
- /**
- * @param LoaderInterface[] $loaders An array of loaders
- */
- public function __construct(array $loaders = array())
- {
- foreach ($loaders as $loader) {
- $this->addLoader($loader);
- }
- }
- /**
- * {@inheritdoc}
- */
- public function resolve($resource, $type = null)
- {
- foreach ($this->loaders as $loader) {
- if ($loader->supports($resource, $type)) {
- return $loader;
- }
- }
- return false;
- }
- public function addLoader(LoaderInterface $loader)
- {
- $this->loaders[] = $loader;
- $loader->setResolver($this);
- }
- /**
- * Returns the registered loaders.
- *
- * @return LoaderInterface[] An array of LoaderInterface instances
- */
- public function getLoaders()
- {
- return $this->loaders;
- }
- }
|