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"
这样就表示安装成功啦。 一旦安装完成,就可以使用 lumen new 命令在指定的目录创建一个新的 Lumen 项目,例如:lumen new test 将会在当前目录下创建一个叫 test 的目录,此目录里面存放着新安装的 Lumen 和代码依赖。是不是非常方便?
3
环境配置
所有的 Lumen 框架的配置信息都存储在项目根目录下的 .env.example 文件中,现在,你需要配置一下你的本地信息
应用程序的当前环境是由 .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?,Laravel 从 5 起已经能算是全栈框架了,从前端到后端,命令行等功能比较齐全,但是 ORM 是它目前性能不是那么好的主因,在需要写api层的时候,很多它的功能用不到,因此我觉得Lumen非常适合于api开发。相比 Slim 等微框架, Lumen 更好用,因为它来自 Laravel,语法优雅不说,你还可以选择性地使用 ORM,以及简化版的模板引擎,还有我还是很推崇laravel框架的分层思想。让我们轻装上阵来深入了解Lumen。
下一章:我们将去了解一下Lumen的路由和中间件。
点击“阅读原文”了解更多实力干货
以上是关于lumen框架数据流的分析的主要内容,如果未能解决你的问题,请参考以下文章
Lumen (Laravel) VS NODE.JS 解决方案