Anthony_c2 Posted October 26, 2022 Share Posted October 26, 2022 Bonjour, je souhaite overrider le controller \src\PrestaShopBundle\Controller\Admin\Improve\Design\ThemeController pour créer moi même la fonction export (exportAction) et ne pas utiliser la fonction de base. J'ai créé un module et il faut que l'override se fasse dans ce module. Comment puis-je faire cela ? J'ai fait un test en ajoutant dans services.yml quelque chose du genre : CustomController: class: PrestaShop\Module\MonModule\Controller\Admin\CustomThemeController decorates: PrestaShopBundle\Controller\Admin\Improve\Design\ThemeController arguments: ['@CustomController.inner'] Et mon controller est comme ceci : namespace PrestaShop\Module\MonModule\Controller; use Exception; use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; use Symfony\Component\HttpFoundation\Response; class AdminMonModuleCustomThemeController extends FrameworkBundleAdminController { public function exportAction(): Response { return 'blablabla'; } } Je ne sais pas si c'est bien ou pas (si ça peut répondre à mon besoin) mais j'ai une erreur : Attempted to load class "CustomThemeController" from namespace "PrestaShop\Module\MonModule\Controller\Admin". Did you forget a "use" statement for another namespace? Si vous avez une idée ou une meilleure façon de faire. Une façon plus simple également si c'est possible. Merci. Link to comment Share on other sites More sharing options...
Mdesign49 Posted October 30, 2022 Share Posted October 30, 2022 Bonjour, Pouvez vous donner plus de détails sur la structure de votre module (où se trouve votre controller : AdminMonModuleCustomThemeController) et le contenu de votre fichier composer.json ? Link to comment Share on other sites More sharing options...
Anthony_c2 Posted October 31, 2022 Author Share Posted October 31, 2022 Bonjour, alors j'ai fini par trouver la solution et le souci venait de entre la chaise et le clavier. Le module est juste une coquille vide, j'avais seulement besoin de faire ce que j'ai dit, intercepter une route pour l'empêcher de fonctionner avec son comportement normal. Le controller est dans src/Controller. Pour ceux qui aurait fait (ou qui feront) la même erreur que moi je me suis juste trompé dans le nom du controller dans le use et le services.yml. J'ai également du faire un composer update -o. Avec le bon nom de fichier ça donne : CustomExportThemeController: class: PrestaShop\Module\MonModule\Controller\AdminMonModuleCustomThemeController decorates: PrestaShopBundle\Controller\Admin\Improve\Design\ThemeController arguments: ['@CustomExportThemeController.inner'] Link to comment Share on other sites More sharing options...
Mdesign49 Posted October 31, 2022 Share Posted October 31, 2022 Bonjour, tant mieux Attention à la commande, composer update -o met également à jour les dépendances. Si c'est uniquement pour l'autoload, vous pouvez utiliser : composer dump-autoload Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now