Bonjour à tous!
J'ai actuellement une classe abstract qui définit des méthodes obligatoires pour que les API soient "runnable". Le problème que j'ai c'est que quand ces méthodes sont absente j'ai une erreur fatale, je voudrais ne plus avoir cette erreur et afficher moi même un message parsé.
Voici ma classe abstract:
1 2 3 4 5 6 7 8 9
| abstract class runnable {
abstract protected function __setConfig();
abstract public function __run(api $api);
public function run(api $api){
$this->__setConfig();
$this->__run($api);
}
} |
Ma classe de test:
class test extends runnable { }
Mon système de chargement:
1 2 3 4 5 6 7 8 9 10 11 12 13
| // Instanciation de la classe
$api = new $appName;
// Test de l'instance de l'API (doit être runnable)
if($api instanceof runnable) {
// Démarrage de l'API
$api->run($this);
// Définition du langage de sortie
$output = in_array($this->config->output, $api->config->outputs) ? $this->config->output : 'json';
// Affichage du résultat
$this->display($api->data, $output);
} else {
$this->display(array('error' => array('id' => '0x06', 'msg' => 'API is not runnable')),$this->config->output);
} |
Le problème surviens à l'instanciation, je n'arrive pas à détecter dynamiquement si les méthodes de runnable sont bien déclarées dans test, du coup j'ai une erreur fatale.
Le truc c'est que ma classe abstract sera amenée à évoluer et j'aimerai trouver un moyen de tester toutes les méthodes de manière automatique avant d'instancier test.
Je ne sais pas si je suis assez clair, n'hésitez pas à me poser vos questions 
- Gecko
Partager