【发布时间】:2018-01-16 12:07:41
【问题描述】:
我正在开发一个应用程序,它会在验证后抓取 HTML 提要。这些网站仅支持电子邮件/密码身份验证,但某些集成可能需要额外信息。所以我的问题现在是在创建域事件和聚合时应该得到的具体问题吗?我与 Prooph 合作过,并创建了仅处理单个实体类型的简单聚合和域事件。但是现在我想知道聚合和域事件是否应该针对这些第三方网站抓取工具。每个提要抓取工具是否应该有一个事件,或者创建一个通用事件并更好地聚合?每个聚合的属性可能不同。
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)
{...}
}
然后是类似的领域事件
class WebsiteAWasInitiated extends AggregateChanged
{
public static function withUser($id, $email, $password){}
}
class WebsiteBWasInitiated extends AggregateChanged
{
public static function withUser($id, $email, $password, $accountIds, $userSalt){}
}
或者创建单个聚合和域事件会更好吗?这两个网站都使用。请记住,支持的网站列表会不断增加。
class WebsiteScraper extends AggregateRoot
{
private $id;
private $credentials;
public static function initiate($id, $credentials)
{...}
}
class WebsiteScraperWasInitiated extends AggregateChanged
{
public static function withUser($id, $credentials){}
}
【问题讨论】:
标签: php events aggregate domain-events prooph