bonjour

j'ai une classe PEAR qui est déréférencée aléatoirement au cours de mes scripts...

je m'explique :

page 1 : (DB.php de pear)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
class DB {
[...]
}
class DB_result {
[...]
}
page 2 : (DB.common.php de pear) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
class DB_common {
  function &query($query, $params = array())
    {
    	[...]
            	// j'ai ajouté ce qui suit pour tester
            	if(!class_exist('DB_result')) {
            		require 'DB.php';
            	}
            	// ce qui suit a été écrit par les dev de pear
                $tmp =& new DB_result($this, $result);
    	[...]
    }
}
le problème est que le fichier 'DB.php' est inclus mais que php plante parceque la classe DB existe déjà ...

bref après avoir interpreté un fichier, une classe est reconnue, l'autre pas...

si je retire l'ajout que j'ai fait, php me renvoie une erreur comme quoi la classe DB_result n'est pas définie.


le pire est que quand je reboot apache, le problème disparait, puis réaparait après une dizaine de minutes d'utilisation ...
ce n'est pas la première fois que je vois une erreur de gestion des classes de ce genre...

est-ce un bug php ? y-a-t il moyen de contourner ce problème ?

pour info, j'utilise php 5.2, apache 2 sur debian sarge