Struktura datového modelu rubrika: Programování: PHP
Ahoj, už dlouhou dobu se snažím přijít na to, jak by měl vypadat datový model. Přečetl jsem snad už desítky článků, ale nikde jsem se nedobral k tomu, jaká je ta správná podoba a tak se omlouvám, pokud použiji špatný název. Nejvíce vycházím z článku pět vrstev modelu od Jana Tichého.
Má být v Mapperu a v Repository x metod typu findByID, findByName atd.? Pokud ne, tak kde tyto metody mají být a pokud ano, jak by měl vypadat interface pro Mapper?
Vrstva nad Mapperem je Repository, nebo DAO?
Dočetl jsem se, že by v Repository nemělo být save a delete.
Děkuji za odpovědi.
Psaní x metod typu findByID, findByName bych Ti příliš nedoporučoval, protože:
- Porušuješ tím open-closed princip, který má své opodstatnění a vyplatí se jej v co největší míře dodržovat
- Koleduješ si o to, že Ti z repositářů postupně vzniknou velké nepřehledné třídy
Namísto těchto metod bych Ti doporučil Query objekty a pokud bys používal třeba Doctrine 2, tak by Tvůj problém v řadě případů řešilo i DQL. Relevantní čtení je například tohle: http://filip-prochazka.com/blog/doctrine-a-service-vrstva-aneb-takto-mi-...
Oproti Query objektům nemají metody findByNecoSpecialniho asi žádné výhody.
Co se Repository, DAO, metod save a delete týče, hezky vysvětlená je tahle záležitost například zde: http://stackoverflow.com/a/8550228
Pro zobrazení všech 8 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře