service层的作用就是把这些需要多个model参与的复杂业务逻辑单独封装出来,这些model之间不再发生直接的依赖,而是在service层内协同完成逻辑。service层的第一个目的其实就是对model层进行解耦
如果需要新服务层调用方法 请在 services\Application 中的 childService 添加,例如:
/**
* @var array
*/
public $childService = [
'example' => [
'class' => 'services\example\ExampleService',
// 子服务
'childService' => [
'rule' => [
'class' => 'services\example\rule\RuleService',
],
],
'pay' => 'services\common\PayService',
],
];
以上例子代表了添加了一个 example 服务及 example 的子服务 rule
/*
*$mall_id 商户ID
*$user_id 用户ID
*$orders['order_no'] 订单编号
*$orders['amount'] 总金额
*$orders['title'] 标题
*$orders['order_type'] 订单类型
*/
// 调用 pay 服务里面的 createTrade() 方法
$res = Yii::$app->services->pay->createTrade($mall_id, $user_id, $orders);
// 调用 example 的子服务 rule 里面的 index() 方法
$childService = Yii::$app->services->example->rule->index();
实际上系统内调用基本上没有用到子服务,自己可以按需使用