Lean Mapper best practices

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

Zdravíčko,

rád bych se inspiroval vašimi přístupu při implementaci Lean Mapperu do Nette.

Tedy, jde mi o jedno: Lean Mapper má Entity a Repozitáře. Uvedu několik případů, které mě stále dezorientují:

  1. Po odeslání formuláře chci leckdy „blbnout“ s Entitami, ale zároveň s nimi nechci blbnout přímo. Tedy bych rád pracoval ještě s nějakou vrstvou ležící mezi Repozitáři a řekněme Presenterem. Jedná se například o situaci, kdy chci odeslat mail, nacpat něco do session, vyrobit několik nových entit, nějaké vazby zničit a třeba ještě pustit fontánu. Přeci to ale nebudu dělat v Presenteru.. Zároveň to asi (?) nepatří do Repozitáře, ten manipujuje s Entitou.
  2. Kdybych si sám vyrobil další vrstvu ležící mezi Repozitářem a Controllerem, zdálo by se mi vše dosti těžkopádné. Někdy přeci v Presenteru rád šahám na samotné Entity. Ale inject několika těchto dalších vrstev spolu s jejich Repozitáři do Presenteru se mi též nejeví jako vhodné řešení.

Inu, jak se s tímto vypořádává Nette-LeanMapper komunita?

Děkuji za jakékoliv reakce.

Editoval Beton (1. 4. 2015 21:03)

Joe Kolář
Člen | 13
+
0
-

Zdravím,
osobně jsem si LM velmi oblíbil, ale ta absence mezivrstvy mezi repozitáři a presentery je znát.
Snažím se ji řešit pomocí managerů, které mi právě uchovávají logiku nad LM i jinými službami (session, cache). Mám to tak, že v repozitářích mám metody na získávání dat, v managerech pak především metody na složitější persistenci, úpravy vazeb, atd. Tzn. ne všechny části modelu mají svůj manager, ale většina ano, protože mi nepřijde čisté právě v presenterech kouzlit s entitami.

Navykl jsem si na masové používání komponent (téměř vše je komponenta), takže s managery a repozitáři pracují komponenty, ale to je otázka preference.

Editoval Joe Kolář (1. 4. 2015 22:49)