Bonjour à tous...

Voilà, je m'adresse à vous... car la je comprends pas mon erreur...

Conf: Php 5.2.0

J'ai une classe de chargement de modules qui doit parser un fichier xml lors de la construction, qui me retourne une erreur simpleXml...

le fichier xml modules.xml

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?xml version='1.0' encoding="UTF-8" ?>
<modules>
	<module name="SystemCore" status="1" src="./class/SystemCore.php" />
	<module name="log" status="1" src="./class/log.php" />
	<module name="mysql" status="1" src="./class/mysql.php" />
	<module name="test" status="1" src="./class/class.test.php" />
</modules>

Le constructeur en question: awaeCore.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
protected function __construct() {
 
		$classname = strtolower(get_class($this));
 
		// Si la classe a déja été instancié, pas la peine de refaire une recherche.
		if ( !isset(self::$_module[$classname]) ) {
			// On charge le fichier de conf.
			self::$_xml = simplexml_load_file($this->FileConf);
 
			// On regarde si le module existe dans le fichier modules.xml.
			$var = self::$_xml->xpath('//module[@name="'.$classname.'"]');
			// Si c'est pas le cas ==> erreur
			if ( $var === FALSE )
			throw new Exception('Module '.$classname.' introuvable dans le fichier de configuration');
 
			// On recherche la chaine XML du module.
			$mod = simplexml_load_string($var[0]->asXml());
			// On vérifie son status.
			if ( (int) $mod['status'] === 0 ) {
				throw new Exception('Module '.$classname.' ne peut être chargé : Status = 0');
			} elseif ( (int) $mod['status'] === 2 ) {
				$this->debug = TRUE;
			}
		}
Lors de l'appel... j'ai un Fatal error:
Call to a member function asXml() on a non-object in /Applications/MAMP/www/masociete.local/awae-r1/awaeCore.php on line 29...
la ligne 29:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$mod = simplexml_load_string($var[0]->asXml());
Si je comprends bien... il me dit que $var[0] n'est pas un objet simplexml... pourtant...

un print_r de $var[0]:

Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [name] => test
            [status] => 1
            [src] => ./class/class.test.php
        )
)

Voila... au secours, là je suis vraiment désespéré... cherché partout... déjà passé quelques heures sur le problème... éclairé moi de vos lanternes...

Manu