Slide 28
Slide 28 text
$user->getName()->getValue(), // 外部システム(Controller等)への戻り値
$user->getEmail()->getValue(), // フレームワーク固有形式への変換は不要
$user->canCreateNewPost() // ビジネスルール結果もそのまま返却
); // このコード全体がLaravel固有クラスを一切使用していない点が重要
}
}
userRepository->nextId(), // Repository経由でID生成:永続化層の詳細を隠蔽
new UserName($request->name), // Value Object でバリデーション:不正値は例外で弾かれる
new Email($request->email) // Value Object でバリデーション:メール形式チェック済み
);
$this->userRepository->save($user); // Repository 経由で永続化:ORM詳細は隠蔽
return new UserDto( // DTO で結果を返却:Domain EntityをAPI用データに変換
$user->getId()->getValue(), // Value Objectからプリミティブ値を取得