Vrstvy modelu – zejména fasáda a repositář

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vosik199
Člen | 6
+
+1
-

Zdravím,
Omlouvám se že znovu otravuju, ale mám trošku guláš v těch pěti vrstvách modelu.
V nějaké diskusi zde jsem četl, že entita se dá považovat jako vracený výsledek u Nette\Database, je to správně?
Nějak teď netuším jak rozdělit repositář a fasádu.
Mám např.
PostsRepository

public function findByCountAndOrLimit($count, $offset = NULL) {
        return $this->selectTable()->limit($limit, $offset)->order('created')->fetchAll();
}

PostsFacade

public function getPostsByCountAndOffset($count, $offset = NULL) {
        return $this->postsRepository->findByCountAndOrLimit($count, $offset);
}

Díky všem za odpovědi :)

Šaman
Člen | 2666
+
+4
-

Když s tím zacínáš, tak repository a fasádu nerozděluj. Není to nutné, všechny dotazy jsou v repository, dokud se ti ta třída nepřeroste. A až přeroste, tak už bys měl mít trochu jasno v tom, co je nativní záležitost repozitáře a co je spíš nadstavba, která se dá vyčlenit do fasády (nebo i více fasád).

A jinak vrácený výsledek není entita. Stejně jako entitou není pole dat načtených z db. Ale pokud o entitě uvažuješ jen jako o hloupé přepravce na data, pak ti opravdu stačí DibiRow, výsledek z NDb, nebo i to pole. Ale žádnou další logiku pak entitu nenaučíš. (Řekněme, že máš v db uložené kružnice – střed a poloměr. Pravá entita by mohla vracet i vypočtený obsah a obvod, zatímco hloupá přepravka (pole, nebo objekt result) ti vrátí jen ten poloměr.)

vosik199
Člen | 6
+
0
-

Super, díky za objasnění :).