vendor/friendsofsymfony/rest-bundle/Routing/Loader/DirectoryRouteLoader.php line 14

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the FOSRestBundle package.
  4.  *
  5.  * (c) FriendsOfSymfony <http://friendsofsymfony.github.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 FOS\RestBundle\Routing\Loader;
  11. @trigger_error(sprintf('The %s\DirectoryRouteLoader class is deprecated since FOSRestBundle 2.8.'__NAMESPACE__), E_USER_DEPRECATED);
  12. use Symfony\Component\Config\FileLocatorInterface;
  13. use Symfony\Component\Config\Loader\Loader;
  14. use Symfony\Component\Finder\Finder;
  15. use Symfony\Component\Routing\RouteCollection;
  16. /**
  17.  * Parse annotated controller classes from all files of a directory.
  18.  *
  19.  * @author Christian Flothmann <christian.flothmann@xabbuh.de>
  20.  *
  21.  * @deprecated since 2.8
  22.  */
  23. class DirectoryRouteLoader extends Loader
  24. {
  25.     private $fileLocator;
  26.     private $processor;
  27.     public function __construct(FileLocatorInterface $fileLocatorRestRouteProcessor $processor)
  28.     {
  29.         $this->fileLocator $fileLocator;
  30.         $this->processor $processor;
  31.     }
  32.     /**
  33.      * {@inheritdoc}
  34.      */
  35.     public function load($resource$type null)
  36.     {
  37.         if (isset($resource[0]) && in_array($resource[0], ['@''.'], true)) {
  38.             $resource $this->fileLocator->locate($resource);
  39.         }
  40.         if (!is_dir($resource)) {
  41.             throw new \InvalidArgumentException(sprintf('Given resource of type "%s" is no directory.'$resource));
  42.         }
  43.         $collection = new RouteCollection();
  44.         $finder = new Finder();
  45.         foreach ($finder->in($resource)->name('*.php')->sortByName()->files() as $file) {
  46.             if (null !== $class ClassUtils::findClassInFile($file)) {
  47.                 $imported $this->processor->importResource($this$class, [], nullnull'rest');
  48.                 $collection->addCollection($imported);
  49.             }
  50.         }
  51.         return $collection;
  52.     }
  53.     /**
  54.      * {@inheritdoc}
  55.      */
  56.     public function supports($resource$type null)
  57.     {
  58.         if ('rest' !== $type || !is_string($resource)) {
  59.             return false;
  60.         }
  61.         if (isset($resource[0]) && in_array($resource[0], ['@''.'], true)) {
  62.             $resource $this->fileLocator->locate($resource);
  63.         }
  64.         return is_dir($resource);
  65.     }
  66. }