[Résolu]Vérifier qu'1 plugin est activé,ds constructeur d'1 autre plug
Jerry Wham
Member
Comment peut-on faire? Si j'appelle une instance de plxAdmin, j'ai une erreur fatale : "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 11027 bytes)"
0
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai trouvé une méthode mais je la trouve un peu lourde.
J'ai détourné la méthode de la classe plxPlugins qui charge les plugins (loadPlugins) pour qu'elle me retourne un tableau des plugins actifs. Je n'ai ensuite qu'à tester dans mon constructeur si le nom du plugin que je cherche est dans ce tableau ou pas. Ce qui donne :
/** * Méthode qui charge le fichier plugins.xml * * @return null * @author Stephane F **/ public function pluginsLoaded() { $activePlugins = array(); if(!is_file(path('XMLFILE_PLUGINS'))) return; # Mise en place du parseur XML $data = implode('',file(path('XMLFILE_PLUGINS'))); $parser = xml_parser_create(PLX_CHARSET); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,0); xml_parse_into_struct($parser,$data,$values,$iTags); xml_parser_free($parser); # On verifie qu'il existe des tags "plugin" if(isset($iTags['plugin'])) { # On compte le nombre de tags "plugin" $nb = sizeof($iTags['plugin']); # On boucle sur $nb for($i = 0; $i < $nb; $i++) { $activePlugins[] = $values[$iTags['plugin'][$i] ]['attributes']['name']; } } return $activePlugins; }Et dans le constructeur :if (in_array('monPlug',$this->pluginsLoaded())) { // ici le code à exécuter }si le tableau est vide ton plugin est désactivé. Je ne sais pas si c'est la bonne méthode mais c'est simple.
Si je fais :
$plxMotor = plxMotor::getInstance(); $this->isMyPlugActivated = $plxMotor->plxPlugins->aPlugins['myplug']; if (is_object($this->isMyPlugActivated)) { $this->isMyPlugActivated = true; } var_dump($this->isMyPlugActivated);J'obtiens :D'où sort ce NULL ?