Autor Zpráva
Eddie
Profil
Cus,

mam asi 5 tried a chcem sa opytat ci je mozne aby som tieto metody jednodtlivych tried volal napr. takto:

$obj->TriedaJedna->Metoda(args);
$obj->TriedaDva->MetodaDruhejTriedy(args);

Niekde som uz tento postup videl...

Ak ste tomu nepochopili tak to este trochu viac rozvediem do podrobosti...

THX
koudi
Profil
Jistě. Můžeš si vytvořit objekt $obj, jehož členské proměnné budou další objekty.
Eddie
Profil
Co znamena členské proměnné?
koudi
Profil
Prostě proměnná dané třídy.
ronnie
Profil
...a nebo použít v poslední době populární fluent interfaces:

...
public function prvni() { return $this }
public function druha() { return $this }
public function treti() { return $this }
...

a pak volat

$instance->prvni()->druha()->treti();
koudi
Profil
...a nebo použít v poslední době populární fluent interfaces ....

Zajímavé. Má to nějaké opodstatnění, proč to používat?
ronnie
Profil
Používá se to v souvislosti se settery, může to zpřehlednit a zlogičnit kód:


$email = new Email();
$email->from('ronnie@ronnie.cz')
->to('koudi@koudi.cz')
->message('Nejaka zprava')
->send();


Fluent interfaces zavedl v Javě Martin Fowler, http://martinfowler.com/bliki/FluentInterface.html. O jeho použití v PHP psal např. http://mikenaberezny.com/archives/35 Mike Naberezny.
Toto téma je uzamčeno. Odpověď nelze zaslat.