2010-04-06 20 views
13

To pytanie jest kontynuacją mojego poprzedniego pytania tutaj zend models architecture (wielkie dzięki dla Billa Karwina). Zrobiłem trochę czytania w tym artykuleProjekt oparty na domenie z Zend

i to pytanie

Teraz rozumiem, co domena Driven Design jest. Ale przykłady są nadal bardzo proste i słabe. Są one oparte na jednej tabeli i jednym modelu. Teraz moje pytanie brzmi: czy używają Domain Model Design w rzeczywistych projektach PHP?

Szukałem dobrej dokumentacji na ten temat, ale nie znalazłem niczego wystarczająco dobrego, to wyjaśnia, jak zarządzać kilkoma tabelami i przenosić je do obiektów domeny. O ile wiem, istnieje biblioteka Hibernate, która ma te funkcje w Javie, ale co powinienem użyć w PHP (Zend Framework)?

+0

DDD jest zdecydowanie używany w PHP w świecie rzeczywistym. Jestem na końcu średniej wielkości projektu używającego go w tej chwili. Zgadzam się, że brakuje tam przykładów, generalnie zalecam przejrzenie kodu java i C# (który jako programista PHP będziesz w stanie zrozumieć). Ogólnie można znaleźć kilka przykładów aplikacji DDD - i jest to oczywiste, w DDD model jest specyficzny dla kontekstu, przykładowe aplikacje w DDD są czasochłonne do napisania, a perspektywa ponownego użycia kodu jest niewielka. – thelastshadow

Odpowiedz

17

Jest newsgroup formed by Matthias Verraes about doing DDD in PHP, mainly with Sf2.

Nieco starsza to seria artykułów Federico Cargnelutti jak to zrobić DDD z PHP i w części z ZF, które mogą być interesujące dla Ciebie:

Jeśli chodzi o ZF, od jakiegoś czasu pojawiała się propozycja dla Zend_Entity and Zend_DataMapper, ale ich rozwój nastąpił na terminated in favor of integrating ZF with Doctrine. Doctrine jest również najbliższą Hibernate w PHP.

Kiedy googling for DDD with PHP, tam będzie kilka dodatkowych zasobów, ale nic tak wszechstronne, jak zasobów dostępnych na official DDD site z code for the App opisaną w Eric Evan's DDD book.

+0

Dziękuję, zgadzam się, że Doctrine jest właściwą drogą! – mik

+0

Dla przyszłych referencji wydaje się, że ta metoda rozwoju zyskuje popularność w społeczności PHP.Mathias Verraes (jeśli jesteś zainteresowany DDD w PHP, powinieneś za nim podążać) założyłeś grupę dyskusyjną [DDD PHP] (https://groups.google.com/forum/#!forum/dddinphp). Również niektórzy użytkownicy Symfony opublikowali kilka przykładów (małych) aplikacji DDD, zobacz [1] (https://github.com/igorw/doucheswag) i [2] (https://github.com/MarcelloDuarte/hexagonal- symfony) – mTorres

2

Zobacz mój projekt na GitHub. Starał się przestrzegać zasad DDD, SOLID i OOP. PHP and DDD. Wewnątrz nie ma ORM, ale ręcznie wykonana warstwa dostępu do danych. Jednostki domeny wymieniają wiadomości. Warstwa prezentacji otrzymuje specjalny rodzaj obiektów. Znajdziesz wiele fabryk. Mają one na celu uproszczenie testów jednostkowych i konserwacji. Mam nadzieję, że niektóre techniki mogą Cię zainteresować.

Powiązane problemy