PHP rozložení volání funkcí na jednodušší

PiF

PHP rozložení volání funkcí na jednodušší
« kdy: 24. 10. 2011, 13:36:09 »
Ahoj,

mám v PHP tohle:
$gjurl=Core::app()->getInstance($Instance)->getUrl(Core_Mode::URL_TYPE_LINK)->gjurl();

A rád bych věděl, jestli to znamená to, co si myslím.

Jestli to chápu správně, tak bych to mohl rozepsat:

$StatickaMetodaJadra=Core::app();
$OdkazNaInstanci=$StatickaMetodaJadra->getInstance($Instance); //volam funkci
$ObjektzVystupuFunkceURL=$OdkazNaInstanci->getUrl(Core_Mode::URL_TYPE); //volam funkci a parametr je konstanta
$gjurl=$ObjektzVystupuFunkceURL->gjurl();

Díky.


DarkKnight

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #1 kdy: 24. 10. 2011, 15:24:33 »
obecne bys to takhle mohl rozlozit :)
oprav si ale - Core_Mode::URL_TYPE   na Core_Mode::URL_TYPE_LINK

a jinak je zbytecne vytvaret dalsi promenne, kdyz s nima nebudes pracovat... a hlavne nechapu, proc se na to ptas :) vyzkouseni je otazka pul minuty a nemusis cekat pul dne :)

PiF

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #2 kdy: 24. 10. 2011, 18:11:57 »
Ahoj,

já to samozřejmě vyzkoušel a fungovalo to.
Rozložit jsem to chtěl, jen abych se ujistil, že tomu volání správně rozumím.
Tj. že každé -> volání je volání nějaké funkce objektu, který získám v předchozím výrazu.

Děkuju ti!

DarkKnight

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #3 kdy: 24. 10. 2011, 18:15:56 »
ano, rozlozeni jsi pochopil spravne... nejdriv zavolas konstrukter objektu a pote volas dalsi metody daneho objektu (vytvaris jako podobjekty - nemuzes treba volat getUrl z objektu Core, aniz bys zavolal instanci toho objektu)

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #4 kdy: 24. 10. 2011, 19:19:55 »
Tak "konstrukter" asi ne, doufám, že je to jen překlep ;-) . Jinak volá se getInstance, což NENÍ konstruktor (!). Core:app je pravděpodobně singleton a getInstance vrátí jednu jedinou instanci toho objektu. Pouze pokud taková neexistuje, pak ji vnitřně vytvoří (pomocí konstruktoru).


DarkKnight

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #5 kdy: 24. 10. 2011, 20:41:51 »
eMko - ano, getInstance je metoda, Core::app by mel volat konstruktor co vim (objektove programuju v jave a ne v phpcku...)

DarkKnight

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #6 kdy: 24. 10. 2011, 20:46:11 »
eMko: aha, tak metoda, ne konstruktor, moje chyba :)

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #7 kdy: 25. 10. 2011, 15:06:28 »
No, zrovna návrhový vzor singleton se používá i v Javě (a z tohoto vzoru je známo to getInstance) ;-) .

DarkKnight

Re: PHP rozložení volání funkcí na jednodušší
« Odpověď #8 kdy: 25. 10. 2011, 15:55:07 »
eMko: ano, sigleton znam, ale jenom v jave, v php jsem ho nikdy nepouzival a napr s nette nepracuju, tak me to zmatlo

aspon jsem zase o neco chytrejsi :)