我正在开发一个应用程序,它在验证后抓取 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){}
}