0

認証後に HTML フィードをスクレイピングするアプリケーションを開発しています。これらの Web サイトはメール/パスワード認証のみをサポートしていますが、一部の統合では追加情報が必要になる場合があります。私の質問は、ドメインイベントと集計を作成するときに取得する必要がある具体的なものですか? Prooph を使用して、単一のエンティティ タイプのみを処理する単純な集計とドメイン イベントを作成しました。しかし今、集計とドメイン イベントがこれらのサード パーティの Web サイト スクレーパーに固有のものであるべきかどうか疑問に思っています。フィード スクレーパーごとにイベントを作成する必要がありますか?それとも、一般的なイベントと集計を作成する方が適切ですか? 各集計のプロパティは異なる場合があります。

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){}
}

それとも、単一の集計およびドメイン イベントを作成する方がよいでしょうか? 両方のウェブサイトが使用するもの。サポートされている Web サイトのリストは増えることに注意してください。

class WebsiteScraper extends AggregateRoot
{
    private $id;

    private $credentials;

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

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

1 に答える 1