我浏览了Laravel文档,发现每个请求都遵循中间层->控制器层->资源层流程。 但是对于我的项目,我需要编写大量的业务处理逻辑。因此,我正在寻找一个服务层选项,其中将从Controller传递执行控制,然后服务层将执行处理逻辑以及数据库提取。但是我在工匠中没有发现与服务层相关的任何内容。
那么,您能建议我如何在我的项目中实现服务层吗?
答案 0 :(得分:4)
在Services
下创建一个app/
文件夹并使用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);
}
}