1.3 KiB
1.3 KiB
创建
示例:
class CompanyController
{
/**
* @Inject
* @var CompanyRequest
*/
protected CompanyRequest $companyRequest;
/**
* @param ApiLayerService $service
* @return ResponseInterface
* @throws MemberException
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function companiesForSimple(ApiLayerService $service): ResponseInterface
{
$result = $service->inject($this->companyRequest)->handle([
'logic_config' => [
CompanyService::class,//调用服务类
'getCompanySimpleList'//对应方法
]
]);
return (new AppResponse())->setResult($result)->success();
}
说明
- 所有控制器方法 必须依赖ApiLayerService
- ApiLayerService->inject 注入当前请求对象
- 由handle注入服务调用编排配置
开发者初期只需要记住这样固定编排格式即可,配置如下
[
'logic_config' => [
CompanyService::class,//调用服务类
'getCompanySimpleList'//对应方法
]
]
直白了说等同于 (new CompanyService(ApiConfigService $config))->getCompanySimpleList(); 并且将一系列依赖直接注入该对象中,开发者在CompanyService直接调用相关依赖。