1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?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 = [];
- /**
- * @param LoaderInterface[] $loaders An array of loaders
- */
- public function __construct(array $loaders = [])
- {
- foreach ($loaders as $loader) {
- $this->addLoader($loader);
- }
- }
- /**
- * {@inheritdoc}
- */
- public function resolve($resource, string $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;
- }
- }
|