lumen 框架中文文档 Word版本
更新时间:2024-06-08 15:27:01 阅读量: 综合文库 文档下载
- lumen推荐度:
- 相关推荐
LUMEN
jiangliqing
MICROSOFTchina.suzhou
介绍.................................................................................................................................................................... 6
什么是 Lumen? ................................................................................................................................................................. 6 在什么时候使用 Lumen? ................................................................................................................................................. 6 Lumen 的限制 ................................................................................................................................................................... 6 Lumen 包含了哪些 Laravel 的功能 ............................................................................................................................. 7
安装.................................................................................................................................................................... 8
安装 Composer ................................................................................................................................................................. 8 安装 Lumen ....................................................................................................................................................................... 8 环境需求 ........................................................................................................................................................................... 8 配置信息 ........................................................................................................................................................................... 9 优雅链接 ........................................................................................................................................................................... 9
配置.................................................................................................................................................................. 10
介绍 ................................................................................................................................................................................. 10 安装后的配置 ................................................................................................................................................................. 10 配置文件 ......................................................................................................................................................................... 10 优雅链接 ......................................................................................................................................................................... 11
HTTP 路由........................................................................................................................................................ 12
基础路由 ......................................................................................................................................................................... 12 路由参数 ......................................................................................................................................................................... 13 命名路由 ......................................................................................................................................................................... 13 路由群组 ......................................................................................................................................................................... 13 CSRF 保护 ....................................................................................................................................................................... 14 请求方法欺骗 ................................................................................................................................................................. 15 抛出 404 错误 ............................................................................................................................................................... 16
HTTP 中间件.................................................................................................................................................... 17
简介 ................................................................................................................................................................................. 17 建立中间件 ..................................................................................................................................................................... 17 注册中间件 ..................................................................................................................................................................... 19 可终止中间件 ................................................................................................................................................................. 19
HTTP 控制器.................................................................................................................................................... 21
介绍 ................................................................................................................................................................................. 21 基础控制器 ..................................................................................................................................................................... 21
1 控制器中间件 ................................................................................................................................................................. 22 依赖注入和控制器 ......................................................................................................................................................... 22
HTTP 请求........................................................................................................................................................ 25
获取请求实例 ................................................................................................................................................................. 25 取得输入数据 ................................................................................................................................................................. 26 旧输入数据 ..................................................................................................................................................................... 27 Cookies ........................................................................................................................................................................... 28 上传文件 ......................................................................................................................................................................... 29 其他的请求信息 ............................................................................................................................................................. 30
HTTP 响应........................................................................................................................................................ 31
基础响应 ......................................................................................................................................................................... 31 重定向 ............................................................................................................................................................................. 31 其他响应 ......................................................................................................................................................................... 33
视图 (View).................................................................................................................................................... 34
基本用法 ......................................................................................................................................................................... 34 服务提供者...................................................................................................................................................... 36
简介 ................................................................................................................................................................................. 36 基本提供者例子 ............................................................................................................................................................. 36 注册提供者 ..................................................................................................................................................................... 37 服务容器.......................................................................................................................................................... 38
介绍 ................................................................................................................................................................................. 38 基本用法 ......................................................................................................................................................................... 38 将接口绑定到实现 ......................................................................................................................................................... 40 上下文绑定 ..................................................................................................................................................................... 40 标签 ................................................................................................................................................................................. 40 容器事件 ......................................................................................................................................................................... 41 缓存.................................................................................................................................................................. 42
配置 ................................................................................................................................................................................. 42
基础使用 ......................................................................................................................................................................... 42
数据库使用基础.............................................................................................................................................. 44
配置 ................................................................................................................................................................................. 44 基础使用 ......................................................................................................................................................................... 44 Migrations ..................................................................................................................................................................... 45
2 加密.................................................................................................................................................................. 46
介绍 ................................................................................................................................................................................. 46 基本用法 ......................................................................................................................................................................... 46 错误和记录...................................................................................................................................................... 47
配置 ................................................................................................................................................................................. 47
错误处理 ......................................................................................................................................................................... 47 HTTP 异常 ....................................................................................................................................................................... 48 日志 ................................................................................................................................................................................. 48 事件.................................................................................................................................................................. 50
基本用法 ......................................................................................................................................................................... 50
事件处理队列 ................................................................................................................................................................. 51
文件系统 / 云存储........................................................................................................................................ 53
简介 ................................................................................................................................................................................. 53 配置文件 ......................................................................................................................................................................... 53 基本用法 ......................................................................................................................................................................... 53 辅助方法.......................................................................................................................................................... 56
数组 ................................................................................................................................................................................. 56 路径 ................................................................................................................................................................................. 60 字串 ................................................................................................................................................................................. 60 网址 ................................................................................................................................................................................. 63 其他 ................................................................................................................................................................................. 64 分页.................................................................................................................................................................. 65
配置 ................................................................................................................................................................................. 65 使用 ................................................................................................................................................................................. 65
追加分页链接 ................................................................................................................................................................. 66 转换至 JSON ................................................................................................................................................................... 67
Queues.............................................................................................................................................................. 68
设置 ................................................................................................................................................................................. 68 基本用法 ......................................................................................................................................................................... 69 更多调度的方法 ............................................................................................................................................................. 71 Queueing Closures ....................................................................................................................................................... 71 执行一个队列监听 ......................................................................................................................................................... 72 常驻队列处理器 ............................................................................................................................................................. 73 已失败的工作 ................................................................................................................................................................. 74
会话.................................................................................................................................................................. 76
配置 ................................................................................................................................................................................. 76
3 使用 ................................................................................................................................................................................. 76 暂存数据(Flash Data) ............................................................................................................................................. 78 数据库 Sessions ........................................................................................................................................................... 78 Session 驱动 ................................................................................................................................................................. 78
Templates........................................................................................................................................................ 79
Blade 模板 ..................................................................................................................................................................... 79 其他 Blade 控制语法结构 ........................................................................................................................................... 80
测试.................................................................................................................................................................. 83
介绍 ................................................................................................................................................................................. 83 定义并执行测试 ............................................................................................................................................................. 83 测试环境 ......................................................................................................................................................................... 83 从测试调用路由 ............................................................................................................................................................. 84 模拟 Facades ................................................................................................................................................................. 84 框架 Assertions ........................................................................................................................................................... 85 辅助方法 ......................................................................................................................................................................... 87 重置应用程序 ................................................................................................................................................................. 87
表单验证.......................................................................................................................................................... 88
基本用法 ......................................................................................................................................................................... 88 路由 / 控制器验证 ....................................................................................................................................................... 90 使用错误信息 ................................................................................................................................................................. 92 错误信息&视图 ............................................................................................................................................................... 94 可用验证规则 ................................................................................................................................................................. 95 添加条件验证规则 ....................................................................................................................................................... 101 自定义错误信息 ........................................................................................................................................................... 103 自定义验证规则 ........................................................................................................................................................... 105
4
5 介绍
什么是 Lumen?
Lumen 是一个由 Laravel 元件搭建而成的微框架, 由 Laravel 官方维护. Lumen 为速度而生, 是当前最快的 PHP 框架之一, 甚至比类似的微框架 Silex 速度还要快.
Lumen 比其他微框架的优点是, 构建在 Laravel 之上, 使其具备 Laravel 强大的功能, 如 路由, 依赖注入, Eloquent ORM, 数据库迁移管理, 队列和计划任务等.
Laravel 本来就是一个功能齐全, 速度飞快的框架, 但是 Lumen 因为去除了很多 Laravel 的配置和可自定义的选项, 速度越加飞快, 毫秒必争.
飞快的速度, 再加上 Laravel 非常方便的功能, 使用 Lumen 开发应用会是非常愉悦的体验.
在什么时候使用 Lumen?
Lumen 专为微服务或者 API 设计, 举个例子, 如果你的应用里面有部分业务逻辑的请求频率比较高, 就可以单独把这部分业务逻辑拿出来, 使用 Lumen 来构建一个小 App.
因为 Lumen 是对 Laravel 优化了框架的加载机制, 所以 Lumen 对资源的要求少很多.
当然, 你可以使用 队列系统 与你的主 Laravel 应用进行交互. Laravel 和 Lumen 从一开始就是设计成能一起很好的工作, 并且, 配合使用, 允许你构架一个强大的, 以微服务为驱动的应用程序.
Lumen 同时也非常适用于构建 API 接口, 此类型的应用通常情况下不需要具备 全栈框架 的所有功能, 如 HTTP 会话管理, Cookies, 和模版系统.
Lumen 的限制
因为对框架的加载进行了优化, 去除灵活性来换取速度, 所以 Lumen 的可自定义性不是很强, 一些专为 Laravel 开发的扩展包可能无法使用, 如开发者工具条, CMS 系统等.
Lumen 没有使用 Symfony 的路由模块, 而是采用了速度更加快的 nikic/fast-route. 如果你需要使用 Symfony 的路由功能, 如 子域名等高级路由功能, Lumen 可能不适合你, 建议使用功能更加齐全的 Laravel.
如果你真的选择了全栈框架, 请放心使用, 构建在 Laravel 上的应用程序能处理每天 15,000,000 以上的请求, 没什么可担忧的.
6 Lumen 包含了哪些 Laravel 的功能
Lumen 包含了大部分的 Laravel 全栈框架的功能:
? Blade 模版引擎 ? Caching 缓存系统
? Command Scheduler 计划任务 ? Controllers 控制器
? Eloquent ORM 数据库操作 ? Error Handling 错误处理
? Database Abstraction 数据库抽象层 ? Dependency Injection 依赖注入 ? Logging 日志系统
?
Queued Jobs 队列系统
Lumen 独特的初始化机制, 使其在功能强大的同时, 具备了高性能, 是构建微服务架构应用的绝佳方案. 请随意查阅各个功能对应的文档.
7 安装
安装 Composer
Lumen 使用 Composer 来管理依赖扩展包, 所以, 在使用 Lumen 之前, 你需要先安装 Composer.
安装 Lumen
通过 Lumen 命令安装
首先, 使用下面命令下载 Lumen 命令:
composer globalrequire\
请确定把 ~/.composer/vendor/bin 路径放置于您的 PATH 里, 这样 Lumen 执行文件就会存在你的系统。 一旦安装完成后,就可以使用 lumen new 命令建立一份全新安装的 Lumen 应用,例如:laravel new service 将会在当前目录下建立一个名为 service 的目录, 此目录里面存放着全新安装的 Lumen 相关代码,此方法跟其他方法不一样的地方在于会提前安装好所有相关代码,不需要再通过 composer install 安装相关依赖,速度会快许多。
lumen newservice
通过 Composer 创建项目命令
你一样可以通过 Composer 在命令行执行 create-project 来安装 Lumen:
composer create-project laravel/lumen --prefer-dist
环境需求
Lumen 框架有一些系统上的需求:
? ? ? ? ?
PHP >= 5.4
Mcrypt PHP 扩展 OpenSSL PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展
8 配置信息
Lumen 几乎不需多余的配置就可以马上使用。你可以马上着手开发!然而,你可以查看其他的文档, 如下:
? ? ? ? 缓存 数据库 队列 会话 权限
Lumen 框架有一个目录需要额外配置权限: storage 目录要让服务器有写入的权限。
优雅链接 Apache
Lumen 框架通过 public/.htaccess 文件来让网址中不需要 index.php。如果你的网页服务器是使用 Apache 的话,请确认是否有开启 mod_rewrite 模块。
假设 Laravel 附带的 .htaccess 文件在 Apache 无法生效的话,请尝试下面的方法:
Options +FollowSymLinks RewriteEngine On
RewriteCond %{REQUEST_FILENAME}!-d RewriteCond %{REQUEST_FILENAME}!-f RewriteRule ^ index.php [L]
Nginx
Nginx 上,在配置中增加下面的配置,就可以使用「优雅链接」了:
location /{
try_files $uri$uri//index.php?$query_string;
}
当然,如果你使用 Homestead 的话,优雅链接会自动的帮你配置完成。
9
}
如你所见,除了定义 handle 方法之外, TerminableMiddleware 定义一个 terminate 方法。这个方法接收请求和响应。一旦定义了 terminable 中间件,你需要将它增加到 HTTP kernel 文件的全局中间件清单列表中。
20 HTTP 控制器
介绍
除了在单一的 routes.php 文件中定义所有的请求处理逻辑之外,你可能希望使用控制器类来组织此行为。控制器可将相关的 HTTP 请求处理逻辑组成一个类。控制器通常存放在app/Http/Controllers 此目录中。
基础控制器
这里是一个基础控制器类的例子:
useApp\\User;
useApp\\Http\\Controllers\\Controller;
classUserControllerextendsController{ /**
* Show the profile for the given user. *
* @param int $id * @return Response */
publicfunctionshowProfile($id) {
returnview('user.profile',['user'=>User::findOrFail($id)]); } }
我们可以通过如下方式引导路由至对应的控制器动作:
$app->get('user/{id}','UserController@showProfile');
Note: 所有的控制器都应该扩展 App\\Http\\Controllers\\Controller 基础控制器类. 控制器和命名空间
和闭包路由一样,你也可以指定控制器路由的名称。
$app->get('foo',['uses'=>'FooController@method','as'=>'name']);
21 命名路由可以用以下方法来生成 URL :
$url=route('name');
带参数的命名路由:
$url=route('name',['id'=>1]);
控制器中间件
中间件 可在控制器路由中指定,例如:
$app->get('profile',[ 'middleware'=>'auth',
'uses'=>'UserController@showProfile' ]);
你也可以在控制器构造器中指定中间件 :
classUserControllerextendsController{ /**
* Instantiate a new UserController instance. */
publicfunction__construct() {
$this->middleware('auth');
$this->middleware('log',['only'=>['fooAction','barAction']]);
$this->middleware('subscribed',['except'=>['fooAction','barAction']]); } }
依赖注入和控制器
构造器注入
Lumen / Laravel 服务容器 用于解析所有的 Laravel 控制器。因此,你可以在控制器所需要的构造器中,对依赖作任何的类型限制。
useApp\\Http\\Controllers\\Controller; useApp\\Repositories\\UserRepository;
22 classUserControllerextendsController{ /**
* The user repository instance. */
protected$users; /**
* Create a new controller instance. *
* @param UserRepository $users * @return void */
publicfunction__construct(UserRepository $users) {
$this->users=$users; } }
方法注入
除了建构器注入外,你也可以对控制器方法的依赖作类型限制。例如,让我们对某个方法的Request 实例作类型限制:
useIlluminate\\Http\\Request;
useApp\\Http\\Controllers\\Controller;
classUserControllerextendsController{ /**
* 保存用户. *
* @param Request $request * @return Response */
publicfunctionstore(Request $request) {
$name=$request->input('name'); // } }
23 如果你的控制器方法预期由路由参数取得输入,只要在其他的依赖之后列出路由参数即可:
useIlluminate\\Http\\Request;
useApp\\Http\\Controllers\\Controller;
classUserControllerextendsController{ /**
* 保存用户. *
* @param Request $request * @param int $id * @return Response */
publicfunctionupdate(Request $request,$id) { // } }
24
正在阅读:
lumen 框架中文文档 Word版本06-08
五年级英语上册教学计划09-10
教育学心理学笔记大全12-21
最新八上英语语法填空专练资料03-22
关于《北方民族大学本预科学生各类奖助学金评定细则(试行)》(草案)征求意见的通知11-30
提取住房公积金申请表(20180917版)样表 - 图文12-29
非煤矿山安全生产许可证延期申请表07-23
第五章习题及答案04-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 中文
- 框架
- 版本
- 文档
- lumen
- Word
- 2015淄博市市级股权投资引导基金申请附件
- 中石油目视化管理方案
- 具体问题具体分析和解决不同的矛盾 文档
- P2P投资理财毕业论文
- 在执行上级党组织决定方面存在的问题及整改措施
- 湿法冶锌工艺流程
- 软件基础习题2009-10答案
- 第二十八讲通论:副词+ 介词、连词+ 语气词和词头、词尾
- 全国2016年10月高等教育高级财务会计自学考试
- 第二十二集团军出川抗战八年经过概述
- 《提高学生的阅读与写作能力的研究》开题报告
- 学生宿舍管理论文
- 研发“运河文化”校本课程的行动研究课题研究报告
- 中药鉴定学笔记——考试重点
- 中国超声影像设备行业调研报告
- 关于印发《上海市实施国家基本药物制度工作方案(试行)》的通知
- 全国计算机基础知识试题及答案
- 电路试题及答案
- 中小企业现金流量管理存在的问题及对策
- 房屋买卖合同纠纷案件重要判例要点摘要、法律文件、司法解释与答