77范文网 - 专业文章范例文档资料分享平台

lumen 框架中文文档 Word版本(5)

来源:网络收集 时间:2019-04-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

}

如你所见,除了定义 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

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库lumen 框架中文文档 Word版本(5)在线全文阅读。

lumen 框架中文文档 Word版本(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/583235.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: