我浏览了 Laravel 文档,发现每个请求都遵循中间层 -> Controller 层 -> 资源层 流程。 但是对于我的项目,我有一个巨大的业务处理逻辑需要编写。所以,我正在寻找一个服务层选项,其中执行控制将从 Controller 传递,然后服务层将执行处理逻辑以及数据库获取。但是我没有在 artisan 中找到任何与服务层部分相关的内容。
那么,你能建议我如何在我的项目中实现服务层吗?
最佳答案
在 app/
下创建一个 Services
文件夹,然后使用 Controllers dependency injections 怎么样? ?
应该是这样的:
MyService.php
<?php
namespace App\Services;
use App\Models\Bar;
class MyService
{
public function foo(Bar $bar)
{
// do things
}
}
MyController.php
<?php
namespace App\Http\Controllers;
use App\Services\MyService;
use App\Models\Bar;
class MyController extends Controller
{
protected $myService;
public function __construct(MyService $myService)
{
$this->myService = $myService;
}
public function handleRequest(Bar $bar)
{
$this->myService->foo($bar);
}
}
关于laravel - laravel 5.7 中的服务层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437781/