本文由 简悦 SimpRead 转码, 原文地址 juejin.cn
「这是我参与 11 月更文挑战的第 4 天,活动详情查看:2021 最后一次更文挑战」
背景
- 项目用 Thinkphp5.1 开发完成,对于各种关系模型的查询 Tp 处理起来还是比较吃力的。
- 作为努力奔跑的程序员,下一个项目我们决定用 Lavarel 进行开发。
- 因为掘金粑粑有奖励,所以把部分 gitee 上的私有的部分学习笔记整理一下。
说明
Laravel 属于中大型框架,各种功能都被内置了,而且 Laravel 官方的文档看的我是云里雾里的,对于新手感觉不是很友好。所以此系列文章只适合有 PHP 基础。想快速入门搞开发的。
正文
上一篇文章我们介绍了 service 层的粒度问题。这里继续上一篇文章内容。
这一节,我们把 Blog 的 service 层提取一下,提取的原则就是 提供单一入口对 Blog 数据进行操作。兼容最多种模式。
我们创建文件 app\Http\Service\BlogService.php
<?php
namespace app\Http\Service;
use App\Models\Blog;
class BlogService{
//文章列表
public function getList($if=[], $size=5){
$res = Blog::query()->where($if)->paginate($size);
return $res;
}
//发表文章
public function add($data){
$res = Blog::query()->create($data);
return $res;
}
//修改文章
public function edit($id,$data){
$blog = Blog::query()->find($id);
if(is_null($blog)){return 0;}
$res = Blog::query()->where('id',$id)->update($data);
return $res;
}
}
Service 层提供三个 对于 Blog 的操作 1 getList 方法 获取博客列表。 因为前端需要调用审核通过的文章,后端需要调用所有的文章。所以,将条件写活,方便前后端都能通过这个 Service 获取到数据。
2 add 方法 发表博客功能。前后端都需要有发表博客功能,区别是前端发表的需要后台进行审核。所以将添加条件写的很灵活。方便前后端都能使用这个方法。
3 edit 方法 编辑博客功能。前后端都有编辑的功能,后端对文章的审核操作也可以使用这个方法。
这样就完成了博客功能的 Service 层。