Domain Driven Design ile Doktrini kullanma

1 Cevap php

Ben (tarif birine benzer here) bir Domain Driven Design yaklaşım uygulanması düşünme, ama Doktrini ORM ile entegre etmek istiyor değilim. Herkes böyle bir şey yapmanın herhangi bir başarı olmuştur?

Benim ilk içgüdüsü DAO katmanı olarak Doktrini kullanımı idi, ama Doktrin benim veritabanı alanları haritasına için aa biraz dolambaçlı görünüyor ve benim varlık Doktrini nesne üzerinde alanları (aslında) aynı seti harita nesneleri.

Benim asıl hedefi benim etki Kişilere gelen tüm DQL / sorgu mantığını ayırmak oldu, ama şimdi şu anda tasarım deseni arazi biraz kayıp hissediyorum.

Ben Doktrin 2 DDD teknikleri için çok daha samimi bir yaklaşım sağlamak gerekiyordu biliyorum, ama ben o kadar uzun beklemek istiyorum emin değilim. Ben mantıklı yapmak istediğimizi yapar, ya da başka bir yaklaşım bulmak gerekir?

Teşekkürler.

1 Cevap

Doktrin, çünkü Repository sınıfının olmaması için DDD kusurlu bence,, olduğunu. Doktrin, belirli sorunlar için iyi bir desen iken, zorunlu olarak 'klasik' DDD için en iyi seçim değildir, böyle Tablo Veri Ağ Geçidi ve Active Record gibi modelleri destekler. Sen, ancak bu eksikliklerin çalışabilirsiniz.

Bir seçenek Doctrine_Table türetmek ve fakir bir adamın depo olarak kullanmayın etmektir. Eğer 'BlogPost' adında bir sınıf varsa Örneğin, sen Doctrine_Table devralmasını, bir tablo sınıf 'BlogPostTable' olabilir. Daha sonra (Doctrine_Record devralan) etki alanı nesneleri ayrı tür mantık tutarak, böyle BlogPostTable sınıfına 'findByCategory' gibi yöntemler ekleyebilirsiniz. O tam bir 'saf' DDD tarafından savunulan desenler gibi aynı değil, ama yeterince yakın.

Hatta aynı tasarım desen olmadan, hala DDD merkezi anlayışlar kullanabilirsiniz. Ana bir Ubiquitous Dil, hem alan uzmanları ve geliştiriciler tarafından okunabilir kesin bir dil kullanarak alanınızı tanımlamak için çalışmakla kavramdır.