Jump to content
reise

Appel d'un namespace entre deux modules | Prestashop 1.7

Recommended Posts

Bonjour à tous,

 

je suis face à un problème, et je n'arrive pas à le résoudre. Je vais essayer de l'exposer ici en espérant que l'un d'entre vous saura m'aider.

 

Alors j'ai développer deux modules. On va dire A et B. Je cherche à les rendre compatible 1.7.

Dans la module B j'ai inclus des fonctionnalités supplémentaires si le module A est installé et activé.

 

Sur les versions précédentes je faisais :

<?php

class B extends Module {
//...
//...
function method() {
 if (Module::isInstalled('A') && Module::isEnabled('A')) {
                
         
                $module_A = new A();
                //....
  }
}

?>

Pas de soucis dans les anciennes version en faisant de cette manière.

 

Pour la 1.7, plus question d'instancier une classe de cette façon sans ajouter le namespace de la classe que l'on souhaite ajouter. On tombe sur cette erreur :

 

 

Attempted to load class "A" from the global namespace.
Did you forget a "use" statement?

 

Et c'est là où je bloque. J'ai essayé d'ajouter le namespace dans la classe A et le use dans la classe B. Mais je rencontre toujours cette erreur :

 

Attempted to load class "A" from namespace "PrestaShop\modules".
Did you forget a "use" statement for another namespace?

 

 

Actuellement j'ai déclaré ça pour la classe A :

namespace PrestaShop\modules;


class A extends Module {
//...
//...
}

Et ça pour la classe B :

use PrestaShop\modules\A;

class B extends Module {
//...
//...
function method() {
 if (Module::isInstalled('A') && Module::isEnabled('A')) {
                
         
                $module_A = new A();
                //....
  }
}

Qu'est ce que j'ai fait de travers ? Qu'est ce que j'ai oublié ?

 

Merci par avance pour votre aide, et votre regard extérieur.

Edited by reise (see edit history)

Share this post


Link to post
Share on other sites

En Symfony, j'ai déjà vu ça aussi quand le nom/chemin du fichier n'était pas identique au namespace. Sinon, ton code m'a l'air correct

Share this post


Link to post
Share on other sites

Bonjour,

J'ai la même erreur sur un override d'un controller. 

Avez-vous trouvé une solution ?

Si oui, merci d'avance de la publier.

Share this post


Link to post
Share on other sites

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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More