V předchozích dvou článcích
jsem se snažil dopátrat, jak kdo implementujete modelovou Service
vrstvu pro Doctrine ORM
2 v Nette Frameworku. Dlouhodobě totiž
hledám ideální řešení,
protože jsem se svým stávajícím lehce nespokojen. Ono funguje a je dokonce
i celkem ohebné a použitelné ve spoustě případů a situací. Nicméně
stále mám pocit, že je tam něco špatně a tak jsem se vydal pátrat, co
to je.
V předchozím
článku jsem řešil, zda o data žádat přímo repository, či zda
žádat service. V tomto článku bych rád otevřel diskusi nad dalším
„problémem“, který řeším.
Když jsem se rozhodoval ,
jakou knihovnu použít pro modelovou část Nelly, byla
jednou z možností Doctrine ORM. Původně jsem si Doctrine ORM 2 nevybral
a začal jsem psát vlastní ORM, postavené
nad dibi. Po přibližně měsíční práci jsem dospěl do fáze, kdy to
nějak fungovalo, ale čekala mě hromada další práce, jako například
optimalizace, celkový refaktoring a hlavně otestování v praxi. V tu dobu
jsem své předchozí stanovisko nepoužít Doctrine znovu přehodnotil
a začal ji používat.
V těchto dnech tomu bude rok, co používám Doctrine. Je to
výborná knihovna a autoři na ní odvedli velký kus práce. Nicméně ani
Doctrine není kompletní řešení modelové vrstvy aplikace. Schází jí
totiž poslední „kostička do skládačky“. Tou je modelová
Service vrstva.