lumen框架数据流的分析

Posted 热心网友张某

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lumen框架数据流的分析相关的知识,希望对你有一定的参考价值。

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

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

首先看一下他的目录结构

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

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

点开app,可以看到

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

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

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

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

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

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

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

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

我们看下页面是什么样的

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

接下来看下添加文章

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

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

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

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

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

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

看下编辑

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

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

我们继续看下find方法

 就是一个简单的查询语句,根据id,毕竟是编辑数据还是需要进行页面回显。

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

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

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

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

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

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

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

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

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

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

 

为速度而生的LARAVEL框架LUMEN——安装与部署

Lumen?Lumen是什么?Lumen其实是Laravel的微框架,相信大家都听过Laravel了吧?Laravel是号称宇宙最快的框架之一,而Lumen就是构建在 Laravel 之上, 使其具备 Laravel 强大的功能,适合用于构建微服务架构和 API 应用。 

官网:http://www.golaravel.com/ 

介绍:https://phphub.org/topics/701


1

服务器要求

  • PHP >= 5.6.4

  • OpenSSL PHP Extension

  • PDO PHP Extension

  • Mbstring PHP Extension

  • Tokenizer PHP Extension

  • XML PHP Extension

2

安装Lumen

Lumen 使用 Composer 来管理代码依赖。所以,在使用 Lumen 之前,请先确认你的电脑上安装了 Composer。


使用packagist 镜像 

composer config -g repo.packagist composer https://packagist.phpcomposer.com


composer安装lumen-installer 

composer global require "laravel/lumen-installer" 

为速度而生的LARAVEL框架LUMEN(一)——安装与部署这样就表示安装成功啦。 一旦安装完成,就可以使用 lumen new 命令在指定的目录创建一个新的 Lumen 项目,例如:lumen new test 将会在当前目录下创建一个叫 test 的目录,此目录里面存放着新安装的 Lumen 和代码依赖。是不是非常方便?

为速度而生的LARAVEL框架LUMEN(一)——安装与部署

3

环境配置

所有的 Lumen 框架的配置信息都存储在项目根目录下的 .env.example 文件中,现在,你需要配置一下你的本地信息

为速度而生的LARAVEL框架LUMEN(一)——安装与部署

应用程序的当前环境是由 .env 文件中的 APP_ENV 变量所决定的。你可以通过应用程序实例的 environment 方法来获取该值:

 $environment = app()->environment(); 

通常我们可以配置成项目的环境变量

 if (app()->environment('test')) {

         // 环境是 test

 }

if (app()->environment('online', 'preonline')) { 

        // 环境是 online 或 preonline... 

现在我们还需要设置应用APPKEY为32位长的随机字符串,该key被配置在.env环境文件中(APPKEY),如果应用key没有被设置,用户sessions和其它加密数据将会有安全隐患!

4

访问配置值

你可以使用全局的帮助函数config来访问配置值,配置值可以通过“.”来分隔配置文件和配置选项,如果配置选项不存在的话则会返回默认值:

 $val = config('app.timezone');

设置配置值:

 config(['app.timezone' => 'America/Chicago']);

5

自定义配置文件

你还可以创建自定义的配置文件并使用$app->configure()方法来加载它们。例如,如果你的配置文件位于config/config.php,你可以像这样加载它:

 $app->configure('config.php');

6

最关键的时刻

最关键的时刻是什么?那肯定是hello world啦,Lumen的入口放在了public 默认有一个index.php

为速度而生的LARAVEL框架LUMEN(一)——安装与部署


Okay!!
   这样就部署好了

为什么我不选择laravel,而去选择Lumen?,Laravel 从 5 起已经能算是全栈框架了,从前端到后端,命令行等功能比较齐全,但是 ORM 是它目前性能不是那么好的主因,在需要写api层的时候,很多它的功能用不到,因此我觉得Lumen非常适合于api开发。相比 Slim 等微框架, Lumen 更好用,因为它来自 Laravel,语法优雅不说,你还可以选择性地使用 ORM,以及简化版的模板引擎,还有我还是很推崇laravel框架的分层思想。让我们轻装上阵来深入了解Lumen。

为速度而生的LARAVEL框架LUMEN(一)——安装与部署

下一章:我们将去了解一下Lumen的路由和中间件。





点击“阅读原文”了解更多实力干货

以上是关于lumen框架数据流的分析的主要内容,如果未能解决你的问题,请参考以下文章

Lumen (Laravel) VS NODE.JS 解决方案

laravel 和 lumen 有啥区别

为速度而生的Laravel框架Lumen-路由与中间件

lumen框架导入数据异常

在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT

lumen框架