icone de liste à puce

Override du controller principal de symfony

Dans certains projets complexes, on peut se retrouver avec plusieurs controllers auxquels on a ajouté des fonctions, recopiées dans chaque controller.

Pour éviter de copier plusieurs fois les mêmes fonctions, il y a plusieurs méthodes possibles. La première consisterait à créer un service. La seconde méthode est de surcharger le controller principal de symfony ( Symfony\Bundle\FrameworkBundle\Controller\Controller ). La méthode n'est pas exactement la même que pour surcharger les controllers de fosuserbundle.

Pour cela, on va créer un controller que l'on va appeler Controller.php dans n'importe lequel de nos Bundles, ou, dans mon cas, dans un bundle controller.

Ce controller sera la copie exacte du controller principal, à part le namespace. On y ajoutera ensuite nos functions.

Ensuite, il suffit de modifier le

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

présent dans tous nos controllers par un use de notre controller surchargé. Et voilà blush, on a maintenant accès à toutes nos functions dans tous nos controllers.

Le

modification le

réactions (1)

  • 1 0
réagir
avatar de Jul6Art

Jul6Art, répondre

yeeeeeeees what i need

partager