src/Http/Admin/Menu/CollaboratorSubscriber.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Http\Admin\Menu;
  3. use App\Infrastructure\Menu\Data\Menu;
  4. use App\Infrastructure\Menu\Event\MenuAdminEvent;
  5. use Knp\Menu\ItemInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class CollaboratorSubscriber extends  Menu implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var ItemInterface
  11.      */
  12.     protected $menu;
  13.     /**
  14.      * Items to add in menu
  15.      *
  16.      * @var        array
  17.      */
  18.     private static $items = array(
  19.         [
  20.             'Collaborateurs',
  21.             [
  22.                 'route'      => 'admin_collaborator_index',
  23.                 'attributes' => [
  24.                     'permission' => [
  25.                         'attribute' => 'ROLE_ADMIN',
  26.                         'object' => ''
  27.                     ]
  28.                 ]
  29.             ],
  30.             []
  31.         ]
  32.     );
  33.     /**
  34.      * @param MenuAdminEvent $event
  35.      */
  36.     public function onMenuConfigure(MenuAdminEvent $event)
  37.     {
  38.         $this->menu $event->getMenu();
  39.         foreach (self::$items as $data) {
  40.             $this->addItem($data[0], $data[1], $data[2]);
  41.         }
  42.     }
  43.     public static function getSubscribedEvents()
  44.     {
  45.         return [
  46.             MenuAdminEvent::CONFIGURE => ['onMenuConfigure',95],
  47.         ];
  48.     }
  49. }