LaravelLumenPHP经验分享

Lumen实例讲解:第二部分

2019-05-06  本文已影响7人  我爱余倩

一、前言

  1. 在前面的文章 Lumen实例讲解:第一部分 中,简单的介绍了 Lumen定时任务系统 的项目结构以及接口数据结构。将会在后面的文章陆续地讲解接口的实现逻辑。
  2. 我们先来重温一下整个 定时任务系统 的核心模块:
Kernel
  1. 是的,初识 Lumen 的读者肯定被这么多的文件吓到了,实际上无论 Laravel 还是 Lumen,其开发风格就是 先繁后简:高度拆分业务,不同的类有不同的职责,极大地降低后期代码维护成本。

二、开始

  1. 最先要给各位讲解的是,此项目最为重要的模块 Task Module。本模块实现的功能如下:
  * 添加定时任务 => api/task/add  => TaskService.addOne()  => 普通管理员
  * 查询定时任务 => api/task/seek => TaskService.seekOne() => 普通管理员|超级管理员
  * 定时任务列表 => api/task/all  => TaskService.listAll() => 普通管理员|超级管理员
  * 删除定时任务 => api/task/del  => TaskService.delOne()  => 超级管理员

看起来貌似只是单纯的 CURD 操作?实际上在本项目,在 Lumen 框架下,一些问题任然值得我们重视:

  1. Task Module 息息相关的 Job Module 就非常简单了,仅仅只有 JobModel 一个文件,该模块存在的意义就是 备份所有进入队列消费的任务信息 作为一种日志形式保留在数据库中。
  2. 诚然,单纯的通过上述的代码片段,还是无法理解意图,所以在本文最后,在下建议新手读者可以去查看框架中以下文件的源码:
\Illuminate\Contracts\Bus\Dispatcher => 框架发布Job到队列的类
\Illuminate\Contracts\Queue\Job => 实现Job接口的有DatabaseJob、RedisJob等
  1. 剩下的模块将会在后续文章中一一讲解。给出最新完整项目的 代码仓库

三、结语

  1. 本教程面向新手,整个系列包含 Lumen实例讲解:第一部分 以及会在近期推出的 Lumen实例讲解:第三部分
  2. 随着系统升级,软件更新,以后的配置可能有所变化,在下会第一时间测试并且更新教程;
  3. 欢迎联系在下,讨论建议都可以,之后会发布其它的教程。
  4. 后面紧锣密鼓地将会推出 Laravel业务篇 系列的教程,敬请期待。
上一篇下一篇

猜你喜欢

热点阅读