vendor/symfony/src/Symfony/Component/Config/Loader/DelegatingLoader.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 
       
     3 /*
       
     4  * This file is part of the Symfony package.
       
     5  *
       
     6  * (c) Fabien Potencier <fabien@symfony.com>
       
     7  *
       
     8  * For the full copyright and license information, please view the LICENSE
       
     9  * file that was distributed with this source code.
       
    10  */
       
    11 
       
    12 namespace Symfony\Component\Config\Loader;
       
    13 
       
    14 use Symfony\Component\Config\Exception\FileLoaderLoadException;
       
    15 
       
    16 /**
       
    17  * DelegatingLoader delegates loading to other loaders using a loader resolver.
       
    18  *
       
    19  * This loader acts as an array of LoaderInterface objects - each having
       
    20  * a chance to load a given resource (handled by the resolver)
       
    21  *
       
    22  * @author Fabien Potencier <fabien@symfony.com>
       
    23  */
       
    24 class DelegatingLoader extends Loader
       
    25 {
       
    26     /**
       
    27      * Constructor.
       
    28      *
       
    29      * @param LoaderResolverInterface $resolver A LoaderResolverInterface instance
       
    30      */
       
    31     public function __construct(LoaderResolverInterface $resolver)
       
    32     {
       
    33         $this->resolver = $resolver;
       
    34     }
       
    35 
       
    36     /**
       
    37      * Loads a resource.
       
    38      *
       
    39      * @param mixed  $resource A resource
       
    40      * @param string $type     The resource type
       
    41      *
       
    42      * @throws FileLoaderLoadException if no loader is found.
       
    43      */
       
    44     public function load($resource, $type = null)
       
    45     {
       
    46         if (false === $loader = $this->resolver->resolve($resource, $type)) {
       
    47             throw new FileLoaderLoadException($resource);
       
    48         }
       
    49 
       
    50         return $loader->load($resource, $type);
       
    51     }
       
    52 
       
    53     /**
       
    54      * Returns true if this class supports the given resource.
       
    55      *
       
    56      * @param mixed  $resource A resource
       
    57      * @param string $type     The resource type
       
    58      *
       
    59      * @return Boolean true if this class supports the given resource, false otherwise
       
    60      */
       
    61     public function supports($resource, $type = null)
       
    62     {
       
    63         return false === $this->resolver->resolve($resource, $type) ? false : true;
       
    64     }
       
    65 }