Dire que j'ai un fichier fichier foo.php:Comment créer une instance d'une classe PHP existante en toute sécurité et dynamiquement?
<?php
interface ICommand
{
function doSomething();
}
class Foo implements ICommand
{
public function doSomething()
{
return "I'm Foo output";
}
}
?>
Si je veux créer une classe de type Foo je pourrais utiliser:
require_once("path/to/Foo.php") ;
$bar = new Foo();
Mais dire que j'ai créé un Chain of Command Pattern et je avoir un fichier de configuration qui enregistre toutes les classes possibles et crée une instance de ces classes en fonction des chaînes présentes dans le fichier de configuration. Comment puis-je m'assurer que ces classes sont réellement où le fichier de configuration dit qu'elles sont? Et que se passe-t-il si une classe n'est pas là (mais le fichier l'est), va-t-elle créer une instance d'une classe générée dynamiquement, qui n'a pas d'autre description?
En fait, mes cours ont tous la même méthode (ils implémentent tous l'interface que je décris au début de ma question). Mais c'est une bonne idée de faire cette vérification, car c'est possible ajouter de nouvelles implémentations plus tard. – Timo