Jump to content

[RESOLU][Module avec PS 8.0.4 ] Module installé avec composer fonctionnant en local, erreur en serveur de test (Did you forget a "use")


Recommended Posts

 

Bonjour, 
Je suis en train de développer un module pour réorganiser le Back Office de Prestashop. Tout fonctionne en local sur laragon.
J'ai un hub git qui me permet de push mes modifs sur mon serveur de test avant de l'envoyer en prod, et c'est là que cela coince. J'ai beau réinstaller le module avec composer, faire des "composer dump-autoload", j'ai toujours le même problème. Si quelqu'un à une lumière pour me permettre d'avancer je la prends avec grand plaisir. Voici toutes les informations de mon installation presta :
 

Informations du serveur : Linux #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64

Version du logiciel serveur : Apache/2.4.56 (Debian)

Version de PHP : 8.2.12 (la version de php n'est pas recommandée avec ce prestashop, mais ça fonctionne très bien sur une autre interface)

Limite de mémoire : 8048M

Temps maximal d'exécution : 600

Taille max. pour envoi de fichiers : 850M

Version de PrestaShop : 8.0.4


presta\modules\foo\composer.json : 

{
    "autoload": {
        "psr-4": {
            "PrestaShop\\Module\\Addsupplierreference\\Controller\\": "controllers/"
        }
    },
    "config": {
        "preferred-install": "dist",
        "prepend-autoloader": false
    }
}

 

presta\modules\foo\config\services.yml
 

services:
  custom_admin_product_controller:
    class: PrestaShop\Module\Addsupplierreference\Controller\Admin\MonProductController
    decorates: PrestaShopBundle\Controller\Admin\ProductController
    arguments: ['@custom_admin_product_controller.inner']
  custom_admin_order_controller:
    class: PrestaShop\Module\Addsupplierreference\Controller\Admin\ExtendedOrderController
    decorates: PrestaShopBundle\Controller\Admin\Sell\Order\OrderController
    arguments: ['@custom_admin_order_controller.inner']

 

Voici la déclaration des fichiers php : 

presta\modules\foo\controllers\admin\ExtendedOrderController.php

<?php

namespace PrestaShop\Module\Addsupplierreference\Controller\Admin;

use PrestaShopBundle\Controller\Admin\Sell\Order\OrderController as BaseOrderController;
use Exception;
use Db;
use DbQuery;
use PrestaShop\PrestaShop\Core\Action\ActionsBarButtonsCollection;
use PrestaShop\PrestaShop\Core\Domain\Order\Exception\OrderException;
use PrestaShop\PrestaShop\Core\Domain\Order\Query\GetOrderForViewing;
use PrestaShop\PrestaShop\Core\Domain\Order\QueryResult\OrderForViewing;
use PrestaShop\PrestaShop\Core\Domain\ValueObject\QuerySorting;
use PrestaShop\PrestaShop\Core\Order\OrderSiblingProviderInterface;
use PrestaShopBundle\Form\Admin\Sell\Customer\PrivateNoteType;
use PrestaShopBundle\Form\Admin\Sell\Order\AddOrderCartRuleType;
use PrestaShopBundle\Form\Admin\Sell\Order\AddProductRowType;
use PrestaShopBundle\Form\Admin\Sell\Order\ChangeOrderAddressType;
use PrestaShopBundle\Form\Admin\Sell\Order\ChangeOrderCurrencyType;
use PrestaShopBundle\Form\Admin\Sell\Order\EditProductRowType;
use PrestaShopBundle\Form\Admin\Sell\Order\InternalNoteType;
use PrestaShopBundle\Form\Admin\Sell\Order\OrderMessageType;
use PrestaShopBundle\Form\Admin\Sell\Order\OrderPaymentType;
use PrestaShopBundle\Form\Admin\Sell\Order\UpdateOrderShippingType;
use PrestaShopBundle\Form\Admin\Sell\Order\UpdateOrderStatusType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;


class ExtendedOrderController extends BaseOrderController
{

presta\modules\foo\controllers\admin\MonProductController.php

<?php

namespace PrestaShop\Module\Addsupplierreference\Controller\Admin;

use PrestaShopBundle\Security\Voter\PageVoter;
use Db;
use DbQuery;
use PrestaShopBundle\Controller\Admin\ProductController as BaseProductController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;


class MonProductController extends BaseProductController
{


Et donc la magnifique erreur : 

Attempted to load class "ExtendedOrderController" from namespace "PrestaShop\Module\Addsupplierreference\Controller\Admin".
Did you forget a "use" statement for "PrestaShop\Module\Addsupplierreference\Controller\admin\ExtendedOrderController"?

 

Dans le debug symfony, il ne passe même pas dans le module voir les fichiers, comme ça fait 2 jours que je suis en galère, je m'en remet à vous ! 
 

Merci pour votre aide



Résolution : 

Quote

Résolu : 
mes fichiers se trouvaient dans : 
 

presta\modules\foo\controllers\admin\ExtendedOrderController.php
alors qu'il attendait de les avoirs ici :
 

presta\modules\foo\controllers\Admin\ExtendedOrderController.php

 

Edited by gngngngn
Résolution du problème (see edit history)
Link to comment
Share on other sites

  • gngngngn changed the title to [Module avec PS 8.0.4 ] Module installé avec composer fonctionnant en local, erreur en serveur de test (Did you forget a "use")

Voici le debug de symfony, pour lui c'est bien détecté... : 
 

sudo php bin/console debug:container | grep custom_admin_product_controller
  PrestaShopBundle\Controller\Admin\ProductController                                                             alias for "custom_admin_product_controller"
  custom_admin_product_controller                                                                                 PrestaShop\Module\Addsupplierreference\Controller\Admin\MonProductController
  custom_admin_product_controller.inner                                                                           PrestaShopBundle\Controller\Admin\ProductController

 // To search for a specific service, re-run this command with a search term. (e.g. debug:container log)


00

sudo php bin/console debug:container custom_admin_product_controller

Information for Service "custom_admin_product_controller"
=========================================================

 ---------------- ------------------------------------------------------------------------------
  Option           Value
 ---------------- ------------------------------------------------------------------------------
  Service ID       custom_admin_product_controller
  Class            PrestaShop\Module\Addsupplierreference\Controller\Admin\MonProductController
  Tags             prestashop.core.controllers
  Public           yes
  Synthetic        no
  Lazy             no
  Shared           yes
  Abstract         no
  Autowired        yes
  Autoconfigured   yes
 ---------------- ------------------------------------------------------------------------------

 

EDIT : Je viens de réinstaller prestashop sur un autre système local. Le module fonctionne nickel à l'installation. Par contre j'ai essayé de l'installer sur un autre serveur avec une version inférieure à la 8.0.4, mais j'obtiens bien la même erreur : 
 

Attempted to load class "ExtendedOrderController" from namespace "PrestaShop\Module\Addsupplierreference\Controller\Admin".
Did you forget a "use" statement for "PrestaShop\Module\Addsupplierreference\Controller\admin\ExtendedOrderController"?


En local, cela fonctionne comme cela devrait fonctionner juste avec l'archive du module. Donc le mystère persiste, j'ai pensé à un problème de droit, j'ai donc tout passé en chmod 777, rien ne change. Je supprime le cache toujours entre 2 manip.

Edited by gngngngn
Test local / remote (see edit history)
Link to comment
Share on other sites

  • gngngngn changed the title to [RESOLU][Module avec PS 8.0.4 ] Module installé avec composer fonctionnant en local, erreur en serveur de test (Did you forget a "use")

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...