*/ final readonly class PersonMenuBuilder implements LocalMenuBuilderInterface { public function __construct(private AuthorizationCheckerInterface $authorizationChecker, private TranslatorInterface $translator) {} 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']; } }