Hugues Tavernier Posted November 23, 2020 Share Posted November 23, 2020 Bonjour, Je tente de créer un controleur pour un module dans le Back-office avec Symfony et je rencontre une erreur ClassNotFoundException avec FrameworkBundleAdminController. L'erreur survient lorsque je tente d'afficher la page associée à ce controleur Je fais mes essais avec Prestashop 1.7.7.0 rc1. Voici mes fichiers associés au module nommé ht_doctrine : // ht_doctrine.php declare(strict_types=1); if (!defined('_PS_VERSION_')) { exit; } if (file_exists(__DIR__.'/vendor/autoload.php')) { require_once __DIR__.'/vendor/autoload.php'; } class Ht_doctrine extends Module { public function __construct() { $this->name = 'ht_doctrine'; $this->author = 'Hugues'; $this->version = '1.0.0'; $this->ps_versions_compliancy = ['min' => '1.7.7', 'max' => _PS_VERSION_]; $this->need_instance = 0; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Exemple HW Doctrine'); $this->description = $this->l('Demonstration des entités Doctrine'); } public function install() { return parent::install() && $this->registerHook('displayHome'); } public function uninstall() { return parent::uninstall(); } public function getContent() { Tools::redirectAdmin( $this->context->link->getAdminLink('AdminHtDoctrineQuote') ); } public function hookDisplayHome() { $this->smarty->assign(['quotes' => []]); return $this->fetch('module:ht_doctrine/views/templates/hooks/quotes.tpl'); } } # config/routes.yml htdoctrine_quote_index: path: /htdoctrine/quotes methods: [GET] defaults: _controller: 'Prestashop\Module\HtDoctrine\Controller\Admin\QuotesController::indexAction' _legacy_controller: 'AdminHtDoctrineQuote' _legacy_link: 'AdminHtDoctrineQuote' // src/Controller/Admin/QuotesController.php namespace Prestashop\Module\HtDoctrine\Controller\Admin; use PrestashopBundle\Controller\Admin\FrameworkBundleAdminController; use Symfony\Component\HttpFoundation\Response; class QuotesController extends FrameworkBundleAdminController { public function indexAction(): Response { return $this->render('@Modules/ht_doctrine/views/templates/admin/index.html.twig'); } } composer.json : { "name": "lhapaipai/htdoctrine", "autoload": { "psr-4": { "Prestashop\\Module\\HtDoctrine\\": "src/" } }, "config": { "prepend-autoloader": false, }, "type": "prestashop-module" } Avant de lancer le module je réalise ces commandes rm -rf var/cache/dev cd modules/<mon-module> composer dump-autoload Au premier essai (avec cache vide) tout marche parfaitement mais dès que je rafraichit la page ou si j'y reviens plus tard (bref que le dossier var/cache/dev n'est plus vide) , alors je rencontre cette exception. Quote Attempted to load class "FrameworkBundleAdminController" from namespace "PrestashopBundle\Controller\Admin". Did you forget a "use" statement for "PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController"? ClassNotFoundException in modules/ht_doctrine/src/Controller/Admin/QuotesController.php (line 7) namespace Prestashop\Module\HtDoctrine\Controller\Admin; use PrestashopBundle\Controller\Admin\FrameworkBundleAdminController; use Symfony\Component\HttpFoundation\Response; --> class QuotesController extends FrameworkBundleAdminController { public function indexAction(): Response { return $this->render('@Modules/ht_doctrine/views/templates/admin/index.html.twig'); } Je ne maitrise pas très bien composer et en particulier la façon dont le fichier composer.json à la racine de prestashop interagit avec celui du module... Auriez-vous une idée pour résoudre ce problème ? Merci et bonne journée. Link to comment Share on other sites More sharing options...
Hugues Tavernier Posted November 24, 2020 Author Share Posted November 24, 2020 le problème venait d'une majuscule oubliée dans mon espace de noms... use PrestashopBundle\Controller\Admin\FrameworkBundleAdminController; au lieu de use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; 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