Vous cherchez à savoir s'il existe un moyen d'implémenter le type de fonctionnalité de la méthode magique __get()
, mais en essayant d'instancier une nouvelle classe.Existe-t-il une méthode magique __get équivalente pour instancier des classes?
Mon but est d'avoir
$foo = new Cat();
ont finalement comme conséquence la création d'un objet générique, à savoir
new Mammal('Cat');
tel que $foo
serait une instance de la classe Mammal
, avec le nom de la classe appelée ('Cat'
) passé en argument au constructeur Mammal
.
Note: Le jeu final je pense, pour ceux qui sont familiers avec le lithium ou CakePHP, est d'éviter d'avoir à définir un tas de classes pour chaque table de base de données. Si je le faisais, la plupart seraient simplement vides, les opérations de base de CRUD étant tout ce qui est nécessaire. De plus, toutes ces définitions d'inclusion et de classe ne peuvent pas être géniales pour les frais généraux. Mon idée serait d'utiliser une seule classe "Model" pour gérer la plupart des fonctions génériques, et je pourrais toujours créer des sous-classes si j'avais besoin de fonctionnalités plus avancées pour une table de base de données spécifique.
Cela fonctionnerait certainement, et pourrait être ma seule solution. Je voulais juste pouvoir écrire "new Cat()". pour la lisibilité, mais ce n'est pas essentiel. Ce serait bien cependant ... –
Devrait probablement être statique - par ex. 'TableFactory :: createTable ('Cat');'. Sinon bonne réponse, le modèle d'usine est celui à utiliser ici. – Pete