Jump to content
destroyedlolo

Comment détecter qu'un new échoue car la classe n'existe pas ?

Rate this topic

Recommended Posts

Bonjour,



J'ai un programme de ce genre



$lst = array('coucou', 'truc');

foreach($lst as $pname){
$probe = new $pname();
}

sauf que les classes ne sont pas forcément définies et sont chargés dynamiquement par un include par spl_autoload_register().



Mais ici aussi, l'include qui en résulte peu échouer : ce sont des sondes pour un outils de monitoring, et je ne veux pas qu'il échoue uniquement car il reçoit un type de donner auquel il ne s'attend pas. Dans ce cas, il ignore simplement les données.



En d'autre terme, je cherche a faire



$probe = new $pname() or continue();

syntaxe qui ne fonctionne pas car <b>Fatal error</b>: Class 'truc' not found.



Une idée?


Share this post


Link to post
Share on other sites

Bon, j'ai trouvé : class_exists() fonctionne parfaitement avec spl_autoload_register() donc ça marche super.




function load_probe($probename){
@include_once('Domestik/Probes/'. $probename .'.inc');
}

...

foreach($dt as $stp => $sample){

$pname = "probe_$stp";
if(!class_exists($pname)){
echo "*I* No support class for $stp\n";
continue;
}
$probe = new $pname($dt['timestamp'], $sample);
}


Je laisse le sujet des fois que ça puisse aider qq'un.


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