J'ai une classe:
class Module {
public function a(...params...) {
//do something, doesn't return anything
}
public function b(...params...) {
//do something, doesn't return anything
}
public function c(...params...) {
//do something, doesn't return anything
}
public function getAsArray() {
return get_object_vars($this);
}
}
Est-il possible de modifier la classe de module, donc des méthodes un(), b() et c() retourner ce $? Je ne veux pas l'écrire dans toutes les fonctions. getAsArray() devrait retourner ce qu'il fait. Le module sera base pour d'autres classes et je veux que ce mécanisme soit implémenté en base, mais l'utilise dans les classes héritées.
Je veux l'utiliser comme ceci:
$module = new Module();
$module->a()->b()->c()->getAsArray();
C'est ce à quoi j'ai pensé, mais cela nécessite d'ajouter un préfixe à chaque définition de méthode. Il est préférable d'ajouter 'return $ this' à chaque méthode, mais toujours douloureux. Ce n'est pas une ligne, chaque méthode dans l'héritage des classes doit retourner '$ this' et je ne veux pas l'écrire ici. – LukLed
Y a-t-il une raison particulière pour laquelle vous ne voulez pas écrire $ return this dans chaque méthode? –
Il s'agit d'une redondance de code inutile. Pourquoi devrais-je l'écrire si je n'en ai pas besoin? – LukLed