*/ final class PersonMenuBuilder implements LocalMenuBuilderInterface { /** * @var AuthorizationCheckerInterface */ protected $authorizationChecker; /** * @var TranslatorInterface */ protected $translator; public function __construct( AuthorizationCheckerInterface $authorizationChecker, TranslatorInterface $translator ) { $this->translator = $translator; $this->authorizationChecker = $authorizationChecker; } public function buildMenu($menuId, MenuItem $menu, array $parameters) { /** @var \Chill\PersonBundle\Entity\Person $person */ $person = $parameters['person']; if ($this->authorizationChecker->isGranted(ActivityVoter::SEE, $person)) { $menu->addChild( $this->translator->trans('Activities'), [ 'route' => 'chill_activity_activity_list', 'routeParameters' => ['person_id' => $person->getId()], ] ) ->setExtra('order', 201); } } public static function getMenuIds(): array { return ['person']; } }