首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aggregate,DomainEvent with Prooph

Aggregate,DomainEvent with Prooph
EN

Stack Overflow用户
提问于 2017-08-09 03:21:03
回答 1查看 251关注 0票数 0

我正在开发一个在通过身份验证后抓取HTML提要的应用程序。这些网站仅支持电子邮件/密码身份验证,但某些集成可能需要额外的信息。所以我的问题现在是明确的,当我创建域事件和聚合时,我应该得到什么?我使用过Prooph,并且创建了简单的聚合和域事件,它们只处理单一的实体类型。但现在我在想,聚合和领域事件是否应该特定于这些第三方网站抓取器。每个提要刮取器应该有一个事件,还是创建一个泛型事件和聚合更好?每个聚集体的属性可以不同。

代码语言:javascript
复制
class WebsiteA extends AggregateRoot
{
    private $id;

    private $email;

    private $password;

    public static function initiate($id, $email, $password)
    {...}
}

class WebsiteB extends AggregateRoot
{
    private $id;

    private $email;

    private $password;

    private $accountIds = [];

    private $userSalt;

    public static function initiate($id, $email, $password, $accountIds, $userSalt)
    {...}
}

然后是类似的域事件

代码语言:javascript
复制
class WebsiteAWasInitiated extends AggregateChanged
{
    public static function withUser($id, $email, $password){}
}

class WebsiteBWasInitiated extends AggregateChanged
{
    public static function withUser($id, $email, $password, $accountIds, $userSalt){}
}

或者创建单个聚合和域事件会更好?这两个网站都使用。请记住,支持的网站列表将会增加。

代码语言:javascript
复制
class WebsiteScraper extends AggregateRoot
{
    private $id;

    private $credentials;

    public static function initiate($id, $credentials)
    {...}
}

class WebsiteScraperWasInitiated extends AggregateChanged
{
    public static function withUser($id, $credentials){}
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-13 18:52:31

这更多的是一个与DDD相关的问题,答案是“视情况而定”。你的抓取器数量会增长得如此之多,以至于你不能为它们中的每一个添加代码吗?然后尝试使用通用的scraper聚合。如果你的刮板数量有限,你可以对每个刮板使用自定义的刮板。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45576481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档