vendor/symfony/http-kernel/Config/FileLocator.php line 33

  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\HttpKernel\Config;
  11. use Symfony\Component\Config\FileLocator as BaseFileLocator;
  12. use Symfony\Component\HttpKernel\KernelInterface;
  13. /**
  14.  * FileLocator uses the KernelInterface to locate resources in bundles.
  15.  *
  16.  * @author Fabien Potencier <fabien@symfony.com>
  17.  */
  18. class FileLocator extends BaseFileLocator
  19. {
  20.     private KernelInterface $kernel;
  21.     public function __construct(KernelInterface $kernel)
  22.     {
  23.         $this->kernel = $kernel;
  24.         parent::__construct();
  25.     }
  26.     public function locate(string $file, string $currentPath = null, bool $first = true): string|array
  27.     {
  28.         if (isset($file[0]) && '@' === $file[0]) {
  29.             $resource = $this->kernel->locateResource($file);
  30.             return $first ? $resource : [$resource];
  31.         }
  32.         return parent::locate($file, $currentPath, $first);
  33.     }
  34. }