lumen route

lumen项目默认route是

$app->get('/', function () use ($app) {
    return $app->welcome();
});

但,文档里写的是

$app->get('/', function() {
return 'Hello World';
});

有什么区别吗

阅读 5.2k
3 个回答

因为include route.php的环境中有一个$app变量,所以可以这么写。非常不建议用闭包作为Controller,请使用Controller@action的形式

就看你要不要在回调函数里面用$app这个变量。
这个和别人的库没关系,是PHP 匿名函数的特性。可以使用use关键字。

你也可以看看这个router库https://github.com/bephp/router,速度很快的。
而且你如果需要使用什么变量,只需要在函数定义的参数列表里面写就好。不需要使用use关键字的。

$router->get('/hello/:name', function($router, $name, $ext=null){
    echo "Hello $name !!!";
    //这里可以使用$router变量
    //使用/hello/world?ext=json这个url访问的时候,这里的$ext就等于'json'
});

这里参数可以是path里面的,也可以是GET参数,也能是POST参数。

$app->get('/', function () use ($app) {
    return $app->welcome();//具体逻辑在welcome函数,由controller和view处理,而不是简单的输出hello world
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进