我想吐槽一下laravel8的新路由
这是laravel 7 的路由
Route::get('/user', 'UserController@index');
下面这是laravle 8 的路由
Route::get('/user', [UserController::class, 'index']);
而且laravel 8 路由还要引入所在的控制器
use App\Http\Controllers\UserController;
有几个控制器就要引入几个控制器,实在想不通这是个什么操作,麻烦大神帮忙指点迷津
高认可度评论:
对于我来说 IDE 引入+跳转方便多了,极大地节省了时间
对于我来说 IDE 引入+跳转方便多了,极大地节省了时间
我还是喜欢这样写
@leo IDE 中会有这样的提示怎么设置下呢
这样就可以了,点击 index 还能跳到控制器里面的方法,非常好
你可以在
app/Providers/RouteServiceProvieder.php
中把protected $namespace = 'App\Http\Controllers';
注释去掉就好了,文档都有的。这个感觉属于功能倒退 :joy:
这个其实一直是官方开发人员建议的写法,8 中直接转正了。
我从 7 开始就这样写,IDE 有自动导入,不用单独写use,还是很实用的。
用sublime-text 开发的就惨了
能跳转不香么
等你几百个路由,又不是你自己写的时候,你就会发现直接跳转过去多么方便了
用phpstrom 写的时候会自动帮你use ,点击index的时候能自动跳转到该控制器的方法
自己改回去不就行了,,,一个命名空间的事,,,
这种写法能自动跳转?不用自己一个一个找文件,能迅速定位处理问题。
我觉得 现在路由这样子挺好的
我感觉这样更好,自由度更高,可以 use 不同命名空间的控制器方法进来,而不用在声明路由的时候逐个写进来。
主要是我用 IDE 里面自动添加 use 的功能太爽了,换做普通编辑器可能会感觉不好。
本质上,路由的第二个参数是一个 callable 函数,laravel8 之前的版本是对第二个参数做了一些特殊处理,判断参数类型,如果是字符串则尝试根据 @ 切割并解析,新的这个写法才是真正的函数调用