3

在遵循 DDD 设计原则时,在 php 中命名服务中的入口点方法的最佳做法应该是什么。

与类相同:

class GetSinglePerson {
     ...

     public function getSinglePerson($personId)
     {
     }
}

命令模式:

class GetSinglePerson {
     ...

     public function execute($personId)
     {
     }
}

适配器模式:

class GetSinglePerson {
     ...

     public function handle($personId)
     {
     }
}
4

3 回答 3

4

一些不适合评论的评论;)

  • DDD不是架构

  • 用动词 ( GetSinglePerson) 代替名词命名类在 OO 中并不常见,包括 DDD。

  • Execute是命令术语 -GetX通常不是命令而是查询 - 请参阅CQRS

  • 单一方法的服务并不常见,更不用说以它们公开的唯一操作命名的服务了。通常,您会将操作组合成具有更高级别名称的名称,例如PersonService.

于 2018-02-15T08:43:38.327 回答
0

这真的取决于你。我会阅读PSR-1 基本编码标准,它有我希望我们都遵循的指导方针。:)

只要你始终如一,这才是最重要的。

这一段特别突出我并适用于这个问题/情况。

4.2. 特性

本指南有意避免任何有关使用 $StudlyCaps、$camelCase 或 $under_score 属性名称的建议。

无论使用什么命名约定,都应该在合理的范围内一致地应用。该范围可能是供应商级别、包级别、类级别或方法级别。

4.3. 方法

方法名称必须在 camelCase() 中声明。

于 2018-02-14T18:00:29.340 回答
0

我会使用索引。如果您使用的是 laravel 或 codeigniter 之类的东西,它应该执行 /GetSinglePerson/{personId} 之类的路由

class GetSinglePerson {
     ...

     public function index($personId)
     {
     }
}
于 2018-02-28T12:27:29.433 回答