Créer un composant Symfony UX Navbar générique encapsulant un composant Preline.
La configuration de la navbar doit être portée par le composant PHP, pas directement dans Twig.
Le composant doit être intégré au layout principal.
Le composant PHP doit gérer :
Exemple :
public function getBrand(): array
{
return [
'label' => 'Symfony UX Starter',
'route' => 'app_home',
'logo' => 'bi:boxes',
];
}
public function getItems(): array
{
return [
[
'label' => 'Accueil',
'route' => 'app_home',
'icon' => 'bi:house',
],
[
'label' => 'Compte',
'route' => 'app_account',
'icon' => 'bi:person',
],
];
}
Le composant doit pouvoir déterminer le lien actif.
La logique active/inactive doit être gérée côté PHP.
Exemple :
public function isActive(string $route): bool
{
return $this->currentRoute === $route;
}
Le Twig ne doit pas contenir de logique complexe pour déterminer l’état actif.
Le layout doit pouvoir utiliser :
<twig:Navbar />
Le template Navbar doit uniquement rendre :
La navbar doit afficher :
Si l’utilisateur est connecté :
Si l’utilisateur est anonyme :
Ne pas introduire de logique métier.
Toute configuration évolutive doit être définie dans Navbar.php.
Le Twig ne doit pas contenir de tableaux de navigation hardcodés.
Préférer :
getBrand()
getItems()
getUserItems()
getActiveClasses()
getInactiveClasses()
Les classes CSS associées aux états doivent être définies dans le composant PHP.
Le template Twig doit rester principalement déclaratif.
Important: The Navbar component is expected to evolve over time.
Design it so new navigation items can be added by modifying Navbar.php only.
Avoid hardcoded navigation structures in Twig.
Mettre à jour ou ajouter un test fonctionnel afin de vérifier :
/home ;Exécuter :
make npm-build
make phpstan
make lint-twig
make test
À la fin, fournir :
How can I help you explore Laravel packages today?