Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: PiF 24. 10. 2011, 13:36:09

Název: PHP rozložení volání funkcí na jednodušší
Přispěvatel: PiF 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.
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: DarkKnight 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 :)
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: PiF 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!
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: DarkKnight 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)
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: eMko 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).
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: DarkKnight 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...)
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: DarkKnight 24. 10. 2011, 20:46:11
eMko: aha, tak metoda, ne konstruktor, moje chyba :)
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: eMko 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) ;-) .
Název: Re: PHP rozložení volání funkcí na jednodušší
Přispěvatel: DarkKnight 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 :)