* @implements AfterRemove * @implements AfterRelate * @implements AfterUnrelate */ class Stream implements AfterSave, AfterRemove, AfterRelate, AfterUnrelate { public static int $order = 9; public function __construct(private HookProcessor $processor) {} public function afterSave(Entity $entity, SaveOptions $options): void { if ($options->get(SaveOption::SILENT)) { return; } $this->processor->afterSave($entity, $options->toAssoc()); } public function afterRemove(Entity $entity, RemoveOptions $options): void { if ($options->get(SaveOption::SILENT)) { return; } $this->processor->afterRemove($entity, $options); } public function afterRelate( Entity $entity, string $relationName, Entity $relatedEntity, array $columnData, RelateOptions $options ): void { if ($options->get(SaveOption::SILENT)) { return; } $this->processor->afterRelate($entity, $relatedEntity, $relationName, $options->toAssoc()); } public function afterUnrelate( Entity $entity, string $relationName, Entity $relatedEntity, UnrelateOptions $options ): void { if ($options->get(SaveOption::SILENT)) { return; } $this->processor->afterUnrelate($entity, $relatedEntity, $relationName, $options->toAssoc()); } }