lumen框架数据流的分析

lumen是基于laravel的一个微型框架,它的特点就就是快,为速度而生。

最近有使用到就总结下他的数据流走向。

首先看一下他的目录结构

lumen框架数据流的分析_第1张图片

我们从目录结构就可以看出来,这和laravel的目录是一样的,这里只是分析了常用的几个常用的

众所周知laravel是一个重路由的框架,所以lumen也不例外,一切的方法都是需要在routes里面进行路由定义

点开app,可以看到

lumen框架数据流的分析_第2张图片

控制器一般定义在Http目录下,模型就在models里面,Services里面定义的是框架本身定义的一些方法,他讲一些增删改查方法封装在里面。我们在服务器里面直接调用里面的方法就可以。

下面对一个列表进行一个分析,来看看他的数据是怎么的一个走向。

lumen框架数据流的分析_第3张图片

这里分析一个文章管理模块,首先是index列表路由,我们去控制器看下 

lumen框架数据流的分析_第4张图片

 这里面的index方法没直接指向了service里面的getlist方法,从字面意思我们就可以得出是获取列表,看来方向是对的,我们去看下

lumen框架数据流的分析_第5张图片

 首先我们看到后面的几个参数,从字面意思我们可以得出,三个意思分别是where条件,limit查询量,columns是查询的列,这里面直接就写成了定值,下面Article是引入的模型和表名,这里就是一个拼表查询语句,以及进行结果返回。

lumen框架数据流的分析_第6张图片

 然后进行页面跳转,模板变量赋值,我们可以进行打印,看下$cate是什么

lumen框架数据流的分析_第7张图片

 可以看到是一个数组对象,里面是一些参数

我们来看下视图代码,使用layui生成表格,页面设置容器,进行填充

我们看下页面是什么样的

lumen框架数据流的分析_第8张图片

 可以看到表格显示到我们的视图上面

接下来看下添加文章

lumen框架数据流的分析_第9张图片

 在routers文件里面进行路由定义,跳转到添加页面,这点就不详解了

lumen框架数据流的分析_第10张图片

 我们可以看到这点使用了一个post方法,进行路由跳转

说明时代了参数的,我们看下控制器方法

lumen框架数据流的分析_第11张图片

 我们可以看到,方法一进去就对请求方式做了判断,看看是静态跳转添加页面,还是提交添加数据,并且在下面对数据类型做了校验,可以看到是进去articleService里面的add方法

lumen框架数据流的分析_第12张图片

首先是使用数组接收参数,然后根据状态对他的更新时间以及添加时间两个字段进行了赋值,判断数组里面的excerpt是否为空,如果为空就调用getExcerptFromContent方法,我们来找下

lumen框架数据流的分析_第13张图片

可以看到这个方法是再添加时为文章摘要赋值,并且对数据做了一定的处理,然后再重新实例化一个Article类,在进行保存,进行提示 。

看下编辑

lumen框架数据流的分析_第14张图片

此处也是先判断,看看是点击编辑还是提交编辑内容,可以看到还是对请求方式的判断

我们需要注意input('id',0),0是id为空时的默认值,防止数据为空时页面报错,还是比较细节的

我们继续看下find方法

lumen框架数据流的分析_第15张图片 就是一个简单的查询语句,根据id,毕竟是编辑数据还是需要进行页面回显。

然后将数据添加进数组,然后获取到文章摘要以及相对应的参数,显示到页面上,进行回显。

如果不是get方法,说明是提交编辑,对数据进行验证,然后获取相应参数以及对数据进行处理,再进行保存提示。

lumen框架数据流的分析_第16张图片

 根据id对状态进行变更,判断文章摘要是否为空,为空时使用getExcerptFromContent方法获取到摘要,进行保存。

删除方法的话就是相对比较简单些

lumen框架数据流的分析_第17张图片

还是对数据类型进行校验,然后接受id和类型,进入articleService的del方法

lumen框架数据流的分析_第18张图片

 如果类型为空的话,对里面的数据进行变更,如果类型不为空的话,就进行删除。

这样一套正删改查就完毕了,有些地方有问题,发现的话请积极指出来,谢谢

总结下,他的大概走向就是路由->控制器->service->控制器->页面渲染

他讲一些sql语句操作类的都写在了service立面,控制器大多是数据类型判断,校验,页面跳转传参。

这就是一套大概的流程了,谢谢观看

lumen框架数据流的分析_第19张图片

 

你可能感兴趣的:(laravel,架构,后端)