Autor | Zpráva | ||
---|---|---|---|
usb Profil * |
#1 · Zasláno: 9. 9. 2014, 18:51:40
Ahoj, potřebuju malou radu. mám následující kod:
$app = Application::start(); if(!empty($_GET)){ $app->onClick($_GET["data"]); } class Application{ public static function start(){ $html = new HtmlRender(); $html->render(); } public function onClick($data){ $this->refresh($data); } public function refresh(array $data){ $html = new HtmlRender(); $html->render($data); } } Díky za radu. |
||
Martin02 Profil |
#2 · Zasláno: 9. 9. 2014, 20:32:26
usb:
Session? |
||
usb Profil * |
#3 · Zasláno: 9. 9. 2014, 20:47:38
A jak mi může session pomoc? nevím přesně jak to myslíš. dík
|
||
Tori Profil |
#4 · Zasláno: 9. 9. 2014, 21:08:53
Možná by pomohlo, kdyby
onClick metoda jen zpracovala a uložila data požadavku (např. jestli je to nějaký výpis z DB, tak by přidala podmínku, podle čeho se mají data filtrovat). Metoda render by se pak volala jen jednou a to zvenčí aplikace. Nedává mi totiž moc smysl, aby se komponenta mohla sama od sebe vykreslit ve dvou různých situacích, bez ohledu na okolí.
Tzn ve skriptu budu volat: inicializaci komponenty, nepovinně jí předám nějaká data, a dám příkaz k vykreslení na daném místě. Jak si to komponenta zařídí, kdy přesně načte záznamy z DB a co provede s předanými daty z $_GET, to už jsou její interní záležitosti. |
||
Joker Profil |
#5 · Zasláno: 9. 9. 2014, 22:16:22
usb:
Metoda start() v té třídě mi přijde jen jako zvláštní případ metody refresh(), kde hodnota $data je prázdná. Pak celkem není důvod, aby to byla samostatná metoda. Dále je v té třídě podle mě zbytečně zadrátovaná třída HtmlRender. Kdyby ty metody nebyly statické, $html bylo atribut a HtmlRender se tam předával v konstruktoru, bude to univerzálnější. Zároveň by konstruktor vyřešil i ty věci, které se mají volat jen jednou. |
||
usb Profil * |
#6 · Zasláno: 10. 9. 2014, 09:59:20
Joker:
> Dále je v té třídě podle mě zbytečně zadrátovaná třída HtmlRender. > Kdyby ty metody nebyly statické, $html bylo atribut a HtmlRender se tam předával v konstruktoru, bude to univerzálnější. Zároveň by konstruktor vyřešil i ty věci, které se mají volat jen jednou. No ve skutečnosti ten Render přijímá v konstruktoru další třídu, která generuje data pro vykreslení. musel bych tedy nejprve vytvořit tu třídu, potom rendera, tu třídu mu předat a nakonec to předat třídě Application. to je docela dost komplikované. třídu Application chápu jako faktory třídu a tohle použití mi přijde jednodušší. Jinak díky za rady, už jsem to opravil a funguje to. |
||
Joker Profil |
#7 · Zasláno: 10. 9. 2014, 12:38:46
usb:
„třídu Application chápu jako faktory třídu“ Tomu moc neodpovídá to, jak v [#1] ta třída vypadá. |
||
Časová prodleva: 10 let
|
0