Je me suis toujours soucié d'appeler des méthodes en les référençant par des chaînes.Les méthodes de référencement et d'appel par chaînes en PHP sont-elles une mauvaise idée?
Fondamentalement, dans mon scénario actuel, j'utilise des méthodes de mappeur de données statiques pour créer et renvoyer un tableau d'objets de modèle de données (par exemple, SomeDataMapper :: getAll (1234)). Les modèles suivent le modèle de conception Active Record. Dans certains cas, des centaines d'enregistrements peuvent être renvoyés et je ne veux pas tout mettre en mémoire en même temps. Alors, je me sers un itérateur pour passer en revue les dossiers, comme suit
$Iterator = new DataMapperIterator('SomeDataMapper', 'getAll', array(1234));
while ($Iterator->hasNext()) {
$data = $Iterator->next();
}
Est-ce une bonne façon de le faire? Est-ce une mauvaise idée de transmettre en tant que chaînes le nom de la classe de mappeur et la méthode? Je m'inquiète que cette idée ne soit pas portable dans d'autres langues. Est-ce généralement le cas pour des langages comme Ruby et Python? Si oui, quelqu'un peut-il recommander une bonne alternative?
Pour votre information, pour le refernce de futurs peuples, j'appelle la méthode comme ceci:
$method = new ReflectionMethod($className, $methodName);
$returnValue = $method->invokeArgs(null, $parameters);
Bon à savoir. Merci! –