PHP fóra: Builder | JakPsatWeb | Webtrh
Nejste přihlášen(a)
Snažím se udělat novou verzi svého redakčního systému abych se naučil OOP v PHP. Řeším menší dilema, které použití je logičtější a „pěknější“.
Použít pro získávání dat k článku/kategorii/.. vždy statické funkce třídy, která zpracovává onen prvek
<?php
$article = Article::getSingle($id);
$articles = Article::getAll($data); // limit, kategorie atd. v poli
$category = Category::getSingle($id);
Article::add($data);
//atd.
?>
Nebo načíst data do třídy pomocí konstruktoru a pak používat třídy pro získávání, přidávání a úpravy dat, které si vždy vytvoří potřebný počet instancí dané třídy (např. pro článek)?
<?php
$article = Get::article($id);
$articles = Get::articles($data);
$category = Get::category($id);
Add::article($data);
?>
Výsledek obou příkladů je stejný, jenom si nejsem jistý, které řešení použít.
Editoval Kenn (26. 9. 2009 15:49)
http://OpiciNoviny.cz – čtení nejen pro opice :P
Upřímně jsou obě řešení strašný. A rozhodně nejsou objektový.
V podstatě jsi zůstal u globálních funkcí ale teď jim říkáš
statický metody.
Navíc tohle půjde jen velice težko jednotkově testovat.
Asi tak, statické třídy nejsou příliš OOP. OOP by byly instance třídy Article s konstruktorem $id, v případě více článků pak pole takových tříd.
LastHunter napsal(a):
Asi tak, statické třídy nejsou příliš OOP. OOP by byly instance třídy Article s konstruktorem $id, v případě více článků pak pole takových tříd.
Takhle to ale mám. Funkce Get::article si zavolá konstruktor třídy article a vrátí objekt. Funkce Get::articles si z tabulky vybere id a pak volá x krát kontruktor třídy Article a vrátí pole objektů.
A dokonce jsem to v tom svém postu i napsal :)
Editoval Kenn (27. 9. 2009 9:42)
http://OpiciNoviny.cz – čtení nejen pro opice :P