#### 方法注入
如果你需要通过请求对象来扩展一些用法,可以使用方法注入功能,例如我们需要在当前请求对象中读取用户信息,就可以在应用公共文件中添加下面代码:
~~~
// 通过hook方法注入动态方法
Request::hook('user','getUserInfo');
~~~
getUserInfo函数定义如下
~~~
function getUserInfo(Request $request, $userId)
{
// 根据$userId获取用户信息
return $info;
}
~~~
要注入的方法的第一个参数必须是Request对象。
接下来,我们可以直接在控制器中使用:
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
class Index extends Controller
{
public function index()
{
$info = $this->request->user($userId);
}
}
调用方法的时候不需要传入当前请求对象,会自动传入。