常规使用方式

可以携带参数,也可以不携带参数

  1. <?php
  2. /**
  3. * 使用闭包
  4. */
  5. # 不携带传递参数
  6. Route::get('hi/:name', function () {
  7. return 'Hi';
  8. });
  9. # 携带参数传递
  10. Route::get('hi2/:name', function ($name) {
  11. return 'Hi '. $name;
  12. });

依赖注入请求对象

也可以依赖注入请求对象,在这里 use think\facade\Route; 加不加其实对功能没啥影响,只是加上后会更加清晰一点。提醒自己使用的是 fade 下 Route 类,这只是是静态代理而已。

  1. <?php
  2. use think\facade\Route;
  3. use think\Request;
  4. # 闭包中使用依赖注入
  5. Route::rule('hello/:name', function (Request $request, $name) {
  6. // 获取请求方法的类型
  7. $method = $request->method();
  8. return '[' . $method . '] Hello,' . $name;
  9. });

postman 测试效果:
image.png


依赖注入响应对象

同样的我们也可以依赖注入响应对象,例子如下:

  1. <?php
  2. use think\Response;
  3. # 注入一个响应对象
  4. Route::rule('hello/:name', function (Response $rep, $name) {
  5. return $rep
  6. ->data('Hello,' . $name)
  7. ->code(200)
  8. ->contentType('text/plain');
  9. });

也可以写成下面这样,连 return 都省略,完全的链式调用。

  1. <?php
  2. Route::get('hello/:name', response()
  3. ->data('Hello,' . $name)
  4. ->code(200)
  5. ->contentType('text/plain'));