| Autor | Správa |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Pi 27.08.10 11:20 |   |
| camo napísal: |
No a pekne sa z toho vyvliekol coldak: ,,toto brat iba ako vseobecny pohlad , na presnu spravnost syntaxe nepozerat !,,
Coldak: ta veta znamena len tolko ze ak som urobil niekde nejaku sytnaxovu chybu tak aby sa do mna niekto nenavazal. priklad by mal byt spravny podla manualov PHP, ale chyba sa mohla vystkytnu. islo len o naznacenie ako by si mal spravne pouzivat OOP.
No ale neviem pochopiť načo je tam funkcia load()(podľa coldaka) dobrá. Načo je tam proste definícia tejto metódy, ktorá urobí to, čo musí urobiť vždy, teda podľa mňa by mala byť súčasťou metódy render().
Coldak: funkcia load($cfg) ma zabezpecit nacitanie dat do nejakej tvojej internej struktury ktora este nebude priamo HTML. preco ? no lebo nikde v zadani som nevidel ze menu musi byt iba pomocou UL,LI. ak by potrebovali generovanie pomocou JS, tak si iba odvodia novu triedu od tvojej a overidnu tvoju funkciu render() svojou v ktorej to urobia po novom no nebudu musiet zase riesit loadovanie a parsovanie suboru nakolko tu funkcionalitu zdedia od tvojej povodnej triedy. Skus sa trochu povenovat OOP.
Predpokladám že getLevel() je volaná z metódy render(). Tak?? Však ako inak, keď je privat.
Coldak: ano, ale moze byt volana aj z load() alebo inej internej funkcie, ale treba davat pozor na staticke funkcie a premenne
|
|
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 11:26 |   |
Walter:
V pohode, nabudúce menej toho výsmechu a nič podobné sa neudeje... a môžeme diskutovať.
Ja som to zadanie dostal cez email a nebolo tam skoro nič, len to čo som už opísal + ten ich základ toho interface...
Coldak:
Ja som toho názoru, že www stránky sa majú optimalizovat na rýchlosť a teda, čím viac funkcii a čím viac parsovania a vyhodnocovania, tým horšie. Preto asi OOP má v PHP svojich odporcov, nie???
No a to s tým JS to už bolo proti všetkým pravidlám prístupnosti. Čo chudáci surfery na mobilných telefónoch a paranoici?
Veď za toto by ma v sekcii HTML ukameňovali. Tak ako to teda mám chápať???
Ja proste akosi OOP a www stránky nejako neviem spojiť dokopi. Ešte keď má firma svoj server len pre seba, ale nie ak sa delím o priestor s niekoľkými tisícami daľších domén... Či ako???
//edituj si prispevky! (stenley) |
| |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Pi 27.08.10 11:53 |   |
| camo napísal: | Coldak:
Ja som toho názoru, že www stránky sa majú optimalizovat na rýchlosť a teda, čím viac funkcii a čím viac parsovania a vyhodnocovania, tým horšie. Preto asi OOP má v PHP svojich odporcov, nie???
No a to s tým JS to už bolo proti všetkým pravidlám prístupnosti. Čo chudáci surfery na mobilných telefónoch a paranoici?
Veď za toto by ma v sekcii HTML ukameňovali. Tak ako to teda mám chápať???
Ja proste akosi OOP a www stránky nejako neviem spojiť dokopi. Ešte keď má firma svoj server len pre seba, ale nie ak sa delím sa priestor s niekoľkými tisícami daľších domén... Či ako??? |
Camo, nik netvrdi ze je zle ak je stranka rychla. ale existuju aj velke projekty ktore si vyzaduju dost casto upgrade, tvoj programovaci pristup by mozno generoval rychlejsie tie stranky no robit zmeny v tak nakodovanej stranke je narocnejsie. to zistis ak sa niekedy dostanes k nejakemu naozaj rozsiahlemu projektu. OOP umoznuje aj efektivnejsie paralelne programovanie kde viac developerov koduje rozne casti projektu a staci im dohodnut si vyhovujuce interfaces. cize jeden moze robit na vizualnej stranke a dalsi na datovej. vdaka pouzitiu interfaces maju zarucene ze ten co robi vizualnu cast dostane k dispozicii implementacie tried ktore mu v jeho casti projektu budu fungovat bez dodatocnej upravy. |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 12:07 |   |
No však keď sa dohodnem s niekým, ako to bude pracovať, tak v pohode. Samozrejme že obsah sa má oddeliť od formy, ale v tom problém môjho prístupu nevidím. Veď tá trieda nieje pevnou súčasťou stránky. ak tam chceš mať niečo iné zavoláš iný render() To menu predsa nemá nič čo by definovalo jeho vizuálnu stránku, či jeho umiestnenie, to je vec CSS. Môžeš si z neho spraviť rozbalovacie aj vysúvacie a všetko na dvoch miestach. Trochu v metóde render, trochu v CSS. Ani v zložitejších projektoch nepredpokladám jednoduchšie riešenie.
Ako to podla teba môj prístup obmedzuje?? Možno sa opakujem, ale asi mi to ešte nedochádza. |
| |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Pi 27.08.10 12:25 |   |
| camo napísal: | No však keď sa dohodnem s niekým, ako to bude pracovať, tak v pohode. Samozrejme že obsah sa má oddeliť od formy, ale v tom problém môjho prístupu nevidím. Veď tá trieda nieje pevnou súčasťou stránky. ak tam chceš mať niečo iné zavoláš iný render() To menu predsa nemá nič čo by definovalo jeho vizuálnu stránku, či jeho umiestnenie, to je vec CSS. Môžeš si z neho spraviť rozbalovacie aj vysúvacie a všetko na dvoch miestach. Trochu v metóde render, trochu v CSS. Ani v zložitejších projektoch nepredpokladám jednoduchšie riešenie.
Ako to podla teba môj prístup obmedzuje?? Možno sa opakujem, ale asi mi to ešte nedochádza. |
v tvojom pripade kazda nova trieda bude musiet odznova riesit parsovanie suboru pokial budes pisat novy renderer lebo parsovanie suboru je sucastou renderera.
dalsia vyhoda oddelenia loadera a renderera je vtom ze ak sa zmeni format suboru alebo nebodaj zdroj dat pre menu ako taky tak sa iba vytvori nova trieda odvodena od povodnej a overidne sa iba funkcia load() , funkcia render sa zdedi v povodnom stave. |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 13:00 |   |
Nejako sa v tom tvojom (značne teoretickom modeli) motám. Toto predsa nieje operačný systém, ale stránka... Ty predpokladáš toľko úrovní dedenia, že to podla mňa nieje reálne vo www využiteľné. Alebo nechápem?
Ach jo...
Má ešte niekto nejaké zaujímavé pripomienky... |
| |
    |
 |
walther
 Užívateľ
 Založený: 24.01.2008 Príspevky: 9710 Bydlisko: Bratislava Vek: 24
 | Zaslal: Pi 27.08.10 13:05 |   |
camo, pri stránkach aké sa tu najčastejšie prezentujú na fóre je oop viacmenej zbytočné.. problém nastáva pri rôznych portáloch a rozsiahlych stránkach, tam sa bez oop nepohneš a to sa ti tu snažili vysvetliť. optimalizácia triedy nespočíva len v optimalizácii rýchlosti, ale aj prehľadnosti, znovupoužiteľnosti... väčšina odporcov oop pri php v živote nepracovala na rozsiahlych projektoch |
| |
  |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Pi 27.08.10 13:11 |   |
presne ako povedal walter
apropo mam dojem ze v tej ulohe co si dostal islo aj o poreverenie tvojich znalosti ohladne OOP kedze tam boo jasne pozadovane pouzitie triedy  |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 13:22 |   |
Ja si myslím, že ani stredne veľký portál OOP nepotrebuje.
Asi nemám predstavu, čo taký portál vo vašom prevedení robí...
coldak:
Čo vlastne robí tvoja metóda load().
To načíta do premennej a volá miesto každého (môjho)echo, metódu render(). Lebo to by na výkone moc nepridalo myslím...
Render() by sa volal z load(), alebo z index.php.
A čo by vlastne robil ten render(). Vyechoval by predanú premennú, alebo čo aby to malo nejaký hlbší zmysel okrem prehľadnosti kódu. |
| |
    |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 | Zaslal: Pi 27.08.10 13:27 |   |
| coldak napísal: | apropo mam dojem ze v tej ulohe co si dostal islo aj o poreverenie tvojich znalosti ohladne OOP kedze tam boo jasne pozadovane pouzitie triedy  |
cize sa opat dostavame k tomu, co som pisal v uvode: je to zbytocna namaha, ked clovek nema dostatok vedomosti a skusenosti... najskor treba problematiku nastudovat a potom sa jej venovat prakticky podobny priklad je, ked zaciatocnik, ktory ledva ovlada zaklady, chce naprogramovat eshop alebo cms... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: Pi 27.08.10 13:31 |   |
| camo napísal: | Ja si myslím, že ani stredne veľký portál OOP nepotrebuje.
Asi nemám predstavu, čo taký portál vo vašom prevedení robí...
coldak:
Čo vlastne robí tvoja metóda load().
To načíta do premennej a volá miesto každého (môjho)echo, metódu render(). Lebo to by na výkone moc nepridalo myslím...
Render() by sa volal z load(), alebo z index.php.
A čo by vlastne robil ten render(). Vyechoval by predanú premennú, alebo čo aby to malo nejaký hlbší zmysel okrem prehľadnosti kódu. |
funkcia load() by mala rozparsovat zdroj dat , v tvojom pripade textovy subor do nejakej inej struktury, napriklad viacrozmerne pole:
| kód: |
array("TV, audio, video",
array("LCD televízory",
array("JVC",
"LG",
"Panasonic",
"Philips",
"Samsung",
"Sony"
)
),
array("LED televízory"
) ,
array("Plazmové televízory"
) ,
)
|
funkcia render() by potom z toho pola vygenerovala html content v tvojom pripade MENU. |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 13:44 |   |
No veď to(viac rozmerné pole) je medzikrok, ktorý tam je úplne navyšše a okrem toho to generovanie viacrozmerného poľa určite bude vyzerať z pohľadu prehľadnosti kódu zversky. A v druhom kroku ho zase budeš prechádzať čo je druhý nadbytočný krok.
Ja skúsim tú moju triedu nejako vylepšiť a potom vám to dám zhodnotiť... Napadá ma že by sa dala veľmi legantne použiť tá tvoja funkcia strspn().
Jedno volanie a vráti level aj položku bez toho zverského poľa...
Veď povedz prečo to pole tam musí byť??? |
| |
    |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3715 Bydlisko: Bratislava Vek: 26
 | Zaslal: Pi 27.08.10 13:49 |   |
rekurzia ti nieco hovori? |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1185 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Pi 27.08.10 18:14 |   |
ale prečo tam má byť vykonaná dva krát. Prvý krát, keď je pole generované, druhý krát, keď sa z neho načítajú dáta. |
| |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 927
 | Zaslal: So 28.08.10 11:00 |   |
| camo napísal: | | ale prečo tam má byť vykonaná dva krát. Prvý krát, keď je pole generované, druhý krát, keď sa z neho načítajú dáta. |
preco nezbuzerujes aj tvorcov prehliadacov preco si najprv z html vytvaraju DOM a az ten potom redneruju ? ved vytvaranie DOMu je podla teba zbytocny medzikrok a ked uz budes rozbehnuty, tak napis aj do php naco vytvarali connector do MySql co vracia nejake pole ked je to zbytocne a ty si to radsej nacitas priamo z ich datasuborov aby to bolo supis brutal rychlejsie  |
| |
  |
 |
|