## 服务层 Server - 说明 - 配置 - 调用 - 各个服务介绍 ### 说明 ​ service层的作用就是把这些需要多个model参与的复杂业务逻辑单独封装出来,这些model之间不再发生直接的依赖,而是在service层内协同完成逻辑。service层的第一个目的其实就是对model层进行解耦 ### 配置 如果需要新服务层调用方法 请在 `services\Application` 中的 `childService` 添加,例如: ```php /** * @var array */ public $childService = [ 'example' => [ 'class' => 'services\example\ExampleService', // 子服务 'childService' => [ 'rule' => [ 'class' => 'services\example\rule\RuleService', ], ], 'pay' => 'services\common\PayService', ], ]; ``` 以上例子代表了添加了一个 example 服务及 example 的子服务 rule ### 调用 ```php /* *$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(); ``` > 实际上系统内调用基本上没有用到子服务,自己可以按需使用 ### 各个服务介绍 1. [插件服务](../service/serv-addons.md) 2. [插件配置服务](../service/serv-addonsconfig.md) 3. [插件菜单服务](../service/serv-addonsbinding.md) 4. [文件资源服务](../service/serv-addonsbinding.md) 5. [网站配置服务](../service/serv-attachment.md) 6. [支付服务](../service/serv-pay.md) 7. [授权服务](../service/serv-auth.md) 8. [菜单服务](../service/serv-menu.md) 9. [菜单分类服务](../service/serv-menucate.md) 10. [参数验证服务](../service/serv-validate.md) 11. [Mq服务](../service/serv-rabbitmq.md) 12. [事件服务](../service/serv-events.md) 13. [权限服务](../service/serv-rbacAuthItem.md) 14. [授权的权限服务](../service/serv-rbacauthItemchild.md) 15. [角色服务](../service/serv-rbacauthrole.md) 16. [权限分配服务](../service/serv-rbacauthassignment.md) 17. [Api授权key服务](../service/serv-apiaccesstoken.md) 18. [数据统计服务](../service/serv-statistics.md)