有没有关于Service层使用的详细介绍
有没有关于在laravel中Service层使用的详细介绍
例如:
什么时候使用Service层
Service层如何划分,模块?功能?控制器?
Service层如何返回,抛出异常?返回数组?返回布尔值?
控制层是不是什么都不写直接调用Service层,所有判断、数据、通知都放入Service层?
……
关于 LearnKu
星期二引用你的主题写篇博文,记得来捧场噢:smile:
数据和逻辑的结合体,由业务串联到一起。拿 Laravel 来说吧,如果我新开一个项目,那么我会:
那么一个正常的运行流程是:
没错,这样做,产生的代码或目录会多一些,但好处就太多了。
有的人喜欢命名一个logic,有的人喜欢service,主要用来处理逻辑,控制层只做参数和验证,其实写哪里都行,看你们公司的要求
service
public function login(array $post) { $val = Validator::make($post, [ 'admin_name' => 'required', 'admin_password' => 'required', ], [ 'admin_name.required' => '用户名不能为空', 'admin_password.required' => '密码不能为空' ]);
controller:
public function login(Request $request) { try { $token = $this->service->login($request->post()); } catch (\Exception $e) { return $this->fail($e->getMessage()); } return $this->success(['data' => '登录成功', 'token' => $token]); }
个人写法
看你自己 正常控制器可以配合验证使用 一般只用于校验参数 逻辑判断可以写在service
硬性目录要求
开发相关规范说明
博客:Laravel 设计模式:Repository + Service 实战
dal 是数据访问层(Data Access Layer)的英文缩写;具体到项目里面,其实是只有查询数据库的功能,外部 API 调用并没有封装进去。具体的代码是一些通用方法的实现,子类可以重写。
dal 结构
logic 结构
logic 第一个作用就是 try catch 只在这一层写, dal 层是不写的,举个例子:
第二个就是 dal 实现了一般的通用单表操作,logic 就是多表的操作,例子:
大概就是这样吧,没什么很精彩的代码 :joy: