vendor/sonata-project/admin-bundle/src/Route/PathInfoBuilder.php line 32

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * This file is part of the Sonata Project package.
  5.  *
  6.  * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Sonata\AdminBundle\Route;
  12. use Sonata\AdminBundle\Admin\AdminInterface;
  13. use Sonata\AdminBundle\Builder\RouteBuilderInterface;
  14. use Sonata\AdminBundle\Model\AuditManagerInterface;
  15. /**
  16.  * @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
  17.  */
  18. final class PathInfoBuilder implements RouteBuilderInterface
  19. {
  20.     private AuditManagerInterface $manager;
  21.     public function __construct(AuditManagerInterface $manager)
  22.     {
  23.         $this->manager $manager;
  24.     }
  25.     public function build(AdminInterface $adminRouteCollectionInterface $collection): void
  26.     {
  27.         $collection->add('list');
  28.         $collection->add('create');
  29.         $collection->add('batch');
  30.         $collection->add('edit'sprintf('%s/edit'$admin->getRouterIdParameter()));
  31.         $collection->add('delete'sprintf('%s/delete'$admin->getRouterIdParameter()));
  32.         $collection->add('show'sprintf('%s/show'$admin->getRouterIdParameter()));
  33.         $collection->add('export');
  34.         if ($this->manager->hasReader($admin->getClass())) {
  35.             $collection->add('history'sprintf('%s/history'$admin->getRouterIdParameter()));
  36.             $collection->add('history_view_revision'sprintf('%s/history/{revision}/view'$admin->getRouterIdParameter()));
  37.             $collection->add('history_compare_revisions'sprintf('%s/history/{baseRevision}/{compareRevision}/compare'$admin->getRouterIdParameter()));
  38.         }
  39.         if ($admin->isAclEnabled()) {
  40.             $collection->add('acl'sprintf('%s/acl'$admin->getRouterIdParameter()));
  41.         }
  42.         // add children urls
  43.         foreach ($admin->getChildren() as $children) {
  44.             $collection->addCollection($children->getRoutes());
  45.         }
  46.     }
  47. }