Aller au contenu

Installation

phil/menu-bundle
PrérequisVersionPourquoi
PHP8.5 ou plus récentLe plancher que déclare le bundle
ext-mbstringtoutesLes messages coupés en caractères
phil/url^0.1.3Les adresses du web lues comme un navigateur les lit
symfony/config^8.2La clé de configuration
symfony/dependency-injection^8.2La classe du bundle et la configuration automatique
symfony/http-foundation^8.2La requête dans laquelle est lu l'élément courant
twig/twigfacultatifLes fonctions et les gabarits
composer require phil/menu-bundle
// config/bundles.php
return [
    // ...
    Phil\MenuBundle\PhilMenuBundle::class => ['all' => true],
];

Les services qui implémentent MenuBuilder ou MenuDecorator sont trouvés quand les services de l'application sont configurés automatiquement, comme ceux de Symfony le sont par défaut.

Configuration

Une seule clé, allow_localhost, false par défaut, qui est aussi le paramètre de conteneur phil_menu.allow_localhost. MenuItem::withUrl() refuse une adresse sur localhost ou sous .localhost à moins de recevoir allowLocalhost: true ; un constructeur qui mène à un service du poste de développement lui passe le paramètre :

when@dev:
    phil_menu:
        allow_localhost: true

when@test:
    phil_menu:
        allow_localhost: true
public function __construct(
    #[Autowire(param: 'phil_menu.allow_localhost')] private bool $allowLocalhost,
) {
}

// in build():
MenuItem::of('mail', 'Mail')->withUrl('http://localhost:8025/', $this->allowLocalhost);

Une adresse IP, http://127.0.0.1:8025/, reste refusée.