Laravel8 快速入门教程七-service层业务提取

528 阅读2分钟

「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

背景

  1. 项目用Thinkphp5.1开发完成,对于各种关系模型的查询Tp处理起来还是比较吃力的。
  2. 作为努力奔跑的程序员,下一个项目我们决定用Lavarel进行开发。
  3. 因为掘金粑粑有奖励,所以把部分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层。