Dobrý den, nejsem žádný PHP expert a proto bych potřeboval poradit, nebo aspoň nasměrovat jak co nejelegantněji vyřešit můj problém.
Dejme tomu, že mám nějaký článek v databázi, ten článek má autora, kategorii a další nepodstatné věci. Článek je reprezentován objektem Article kde je autor a kategorie zapsané jako číslo. Taktéž ale obsahuje objekt authorObject a categoryObject. Tyto objekty jsou vlastně reprezentace uživatele a kategorie místo čísla, jako objekt. Tzn můžu volat takto
$myArticle = $factory->getByID(2);
print($myArticle->author->info->name);
print($myArticle->author->mail);
print($myArticle->category->name);
a tak podobně... myslím, že je to jasné.
Teď ale k mému problému. Bude nastávat hodně případů, kdy ty objekty (autor, kategorie) tam chtít nebudu (nebudu je využívat), tak proč bych je tahal z databáze zbytečně? Přemýšlel jsem, že bych to mohl vyřešit hned v získávání objektu pomocí metody "getByID" tímto stylem.
public function getByID($id = int, [$category], [$author]){
// podle toho jestli $author nebo $category není null
// tak se budou vracet ty instance
// pokud null budou oba, tak se samozřejmě vrátí jen holý objekt článku bez sub objektů
}
Jak už jsem psal, nejsem velký znalec PHP... ale příjde mi to jako prasárna tohle se mi rozhodně nelíbí
$article = $factory->getByID(2, true, true);
$article = $factory->getByID(2, false, true); // fuj
Nebyl by jednodušší způsob? Musím psát parametr 2 i když ho nechci.
Představoval bych si to nějak takto?
$article = $factory->getByID(2, INS_CATEGORY | INS_AUTHOR);
// <- chci oba
$article = $factory->getByID(2, INS_AUTHOR);
// <- chci jen autora
$article = $factory->getByID(2, INS_CATEGORY);
// <- pouze kategorie
Nevím jestli toto PHP vůbec podporuje a doufám, že jste mě pochopili. Předem díky za každou odpověď!