Laravel 服务层:将 HTTP 请求从控制器传递到服务

And*_* Ch 5 service design-patterns laravel

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

验证也是如此:据我了解,验证器在失败时会将用户重定向回来(这在命令行或事件处理程序的情况下可能没有意义)或返回 HTTP 错误。

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

这方面的最佳实践是什么?