我正在开发一个Laravel应用程序并使用服务层模式来隔离业务逻辑 . 我在所有教师/文章中遇到的是将HTTP请求对象从控制器直接传递到服务中 . 对我而言,它违背了服务原则,即服务是独立于API的代码,对某个功能负有单一责任 . 想象一下,我想从命令行或事件处理程序调用服务,然后我必须构造一个HTTP Request对象传递给控制器 .

同样适用于验证:据我所知,验证器会在失败时重定向用户(在命令行或事件处理程序的情况下可能没有意义)或返回HTTP错误 .

另一方面,对于很多表单字段,应该有一些结构来传递数据,而表单本身已经给出了这样的结构 .

关于此的最佳做法是什么?