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.
V sobotu jsem vydal článek ve,
kterém srovnávám různé ORM vrstvy používané ve spojení s Nette Frameworkem. Ve srovnání se nenacházelo NotORM od Jakuba
Vrány . Jakub dnes do testu doplnil NotORM
a požádal mě o změření za stejných podmínek jako ostatní měřená ORM
v předchozím článku.
Zdálo se mi, že je Doctrine
2 je extrémně pomalá a proto jsem zvažoval, že ji opustím. Ale abych
to měl podloženo, pustil jsem se do testování. Udělal jsem si jednoduchou
aplikaci v Nette, která dané ORM pořádně otestuje.