【发布时间】:2016-08-11 15:26:53
【问题描述】:
我正在考虑一个广告网站,用户可以在其中登录、发布新列表并搜索现有列表。我将把它作为我的第一个完全遵循 DDD 原则的项目。我以前从未在 Symfony 中做过任何 DDD。
以下是我对此的看法。您能否告诉我这是否正确并建议更好的方法?
我可以看到两个域:用户和列表
搜索/显示/发布功能将存在于列表域中。在用户域中实时登录/注销。
SF3目录示例结构是
app/
ListingBundle/
src/
Listing.php
SearchService.php
ListingRepositoryInterface.php
Controller/
public/
ListingController.php
protected/
ListingController.php
Resource/
view/
public/
detail.twig.html
protected/
edit.twig.html
UserBundle/
src/
User.php
AuthService.php
UserRepositoryInterface.php
Controller/
public/
UserController.php
protected/
UserController.php
Resource/
view/
public/
login.twig.html
protected/
dashboard.twig.html
PersistenceBundle
src/
UserRepository.php
ListingRepository.php
我的主要问题是:
- 这个结构正确吗?
- 使用相同名称的不同受保护控制器和公共控制器是个好主意吗?
- 在网站的用户后端部分显示用户最近发布的列表之类的页面在哪里?这两个领域的界限在哪里?
- PersistenceBundle 是个好主意还是我应该在 User 和 Listing 捆绑包中拥有持久性?
【问题讨论】:
-
纯领域驱动设计专注于复杂的领域逻辑。可能对布局您的域业务逻辑可能首先看起来很有用。控制器和视图应该只是次要的实现细节。
标签: php domain-driven-design symfony