Dibi fluent v presenterech vs modelech

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

Zdravím,

měl bych filosofický dotaz. Jak moc je dobré či špatné si předávat z modelu do presenteru Dibi fluent.

Proč je dobré do presenterů dibi fluent vůbec netahat?

  1. Presentery nejsou pak závislé na struktuře databáze. Mohu například přepsat modely tak, aby fungovaly nad textovými soubory a zbytek aplikace běží dál.
  2. Dodržuje to DRY. Napříkad kdybych si vracel z modelu fluent getArticles() a v presenterch pak měl za tím něco jako ->where(‚id = ?‘), pro vypsání daného článku, tak je pravděpodobné, že tuto podmínku budu mít časem na více místech.
  3. Lépe se to testuje. Business logika není roztahaná i po presenterech, stačí věnovat pozornost pouze modelům.

Proč je dobré si dibi fluent do presenteru předat?

  1. Není potřeba vytvářet v modelu spousty metod jako get(), getList(), getPairs() …
  2. Při složitějších dotazech pak není potřeba metodám modelu předávat spousty parametrů a tam pak zavádět spousty podmínek

Existuje mezi tím nějaký kompromis? Má smysl si úplně zakázat dibi fluent v presenterech?
Díky za názory :)

Filip Procházka
Moderator | 4668
+
0
-

Tohle jsi četl? Jde mi hlavně o ty účelové Facade nad modely.

tajo
Člen | 20
+
0
-

Teď už ano. :)
Závěr: Presenter by se měl určitě zbavit závislostí na entitě (v případu výše těch Articles) a přebujelý model se pak má řešit jeho větší či menší dekompozicí. Chápu to správně?