W "Zend Framework" zastosowano wzorzec Table Data Gateway oraz Row Data Gateway. W związku z tym zastanawiam się jak zorganizować modele, by podzielić warstwę modelu na dwie mniejsze: warstwę logiki biznesowej i warstwę danych.
Jako wzorzec logiki dziedziny w warstwie logiki biznesowej chciałbym zastosować wzorzec Domain Model dla obiektowego odwzorowania elementów czy pewnych czynników, które będą zawierać dane i czynności, np.:
<?php $firma = new Firma(); $firma->nazwa = "Moja firma"; $katalog = new Katalog(); $katalog->nazwa = "Moje ulubione firmy"; $katalog->dodajFirmeDoKatalogu($firma); ?>
Natomiast jako wzorzec architektury źródła danych w warstwie danych... no właśnie, co? Martin Fowler w swojej książce "Patterns of Enterprise Application Architecture" proponuje jako najrozsądniejsze rozwiązanie użycie wzorca Data Mapper:
<?php $mapper->update($katalog); ?>
Chciałbym jednak wykorzystać bibliotekę "Zend_Db_Table" implementującą wzorce Table Data Gateway i Row Data Gateway. I teraz jak się za to zabrać? A druga sprawa jak zorganizować strukturę katalogów dla takiego podziału modelu w aplikacji?