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

150 阅读2分钟

本文由 简悦 SimpRead 转码, 原文地址 juejin.cn

「这是我参与 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 层。