Jump to content

Question de compréhension uninstall()


Recommended Posts

Bonjour,

 

J'apprivoise la création de module doucement, je bloque sur la compréhension du code de prestashop au niveau de la fonction uninstall().

 

Le module et la function uninstall fonctionnent mais je ne comprends pas comment !

 

 

Le code qui fonctionne :

public function install(){
   if(!parent::install()
      OR !$this->registerHook('leftColumn')
      OR !Db::getInstance()->Execute('    
         CREATE TABLE '._DB_PREFIX_.'mymodule (
           id_mymodule int(2) NOT NULL,
           id_lang int(2) NOT NULL,
           text varchar(64) NOT NULL,
           PRIMARY KEY(id_mymodule))
           ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8')        
   ){
     return false;
   }else{
     return true;
   }
}

public function uninstall(){
  if (!parent::uninstall()
        // supression de la ligne 'mymodule' de la table 'ps_module'
   	OR !Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'mymodule')
        // suppression de la table 'ps_mymodule', créée à l'installation
	OR !Db::getInstance()->Execute('DROP TABLE '._DB_PREFIX_.'mymodule')				
){	
	return false;	
}else{
	return true;
}
}

Je comprends la suppression DROP TABLE mais pas le DELETE. Comment le DELETE accède à la TABLE ps_module pour supprimer la ligne mymodule ?

 

Dans mon idée, le code suivant est plus clair. Il execute correctement le DELETE mais pas le DROP... ça bloque et indique une erreur dans le backoffice, pourquoi ?

OR !Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'module WHERE name = mymodule')

Merci pour vos explications

Link to comment
Share on other sites

Finalement j'ai compris !

 

La function uninstall() seule supprime la ligne créée dans la table ps_module.  Que je croyais supprimée par le DELETE.

 

Seule ligne DROP est nécessaire pour supprimer toute trace de ce mondule dans la bdd.

 

....si ça peut aider quelqu'un !

Link to comment
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...