Itérator et parcour d'objet

ViPHP
ViPHP | 4674 Messages

15 janv. 2010, 01:40

Tu as une erreur, et c'est suffisant pour être un vrai problème.
Mais sinon, tu n'as qu'à essayer :-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 janv. 2010, 09:27

J'ai un peu de mal à imaginer le cas où $this n'est pas un objet, puisque si le setter n'est pas statique (ce qui est le cas dans l'implémentation de l'interface Fluent), nous avons bien une instance de l'object, puisque nous avons appelé la méthode :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

17 janv. 2010, 21:50

Tu n'es pas obligé de retourner $this mais un autre objet :
public function getAnObject ( ) {

    return $something ? new AnObject() : null;
}

public function fluentMe ( ) {

    // … some operations
    return $this->getAnObject();
}
Dans un tel cas, $o->fluentMe()->anOtherMethod() peut retourner une erreur :-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 janv. 2010, 21:56

On est encore dans l'interface Fluent là ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

17 janv. 2010, 22:11

Dans un sens oui car on ne change pas de variable lors de l'écriture, on change juste d'objet. L'interface fluent (dans mon esprit) consiste à ne pas changer de variable, c'est un chaînage comme on peut le dire en français, sauf que les maillons ne sont pas tous sur le même objet ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 janv. 2010, 22:32

Dans les textes, toutefois, l'interface Fluent (Chainage) consiste à retourner l'objet lui-même, afin de permettre de chainer les appels au même objet.

Bien que ce que tu nous présentes soit très pratique, ça représente un cas de fonctionnement plus standard, comme n'importe quel getter qui retourne une instance d'objet, au final.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

17 janv. 2010, 22:48

Certes. Je ne peux pas te donner tord. C'est une vue de l'esprit. On conserve un chaînage mais en changeant d'objet. Ça mélange plusieurs notions intéressantes. Après le nom qu'on y colle, ça importe peu ;-).
On va dire que c'est un inter-chaînage :-D.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).