Laravel8的路由为什么跟以前不一样了,这样做有啥好处吗?

use  App\Http\Controllers\UserController; Route::get('/user',  [UserController::class,  'index']);

这种写法是官方推荐的,但是路由文件会引入许多的类,看上去没有之前简洁了。既然之前的写法简单,为什么在laravel8版本中反而复杂了

Complicated
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13
<?php

namespace App\Http\Controllers;

Route::get('/user',  [UserController::class,  'index']);

这样就可以了。

3年前 评论
北冥 3年前

主要是 ide 会自动补全 + 命名空间

自动补全: 少打代码 + 不会出现类名写错

3年前 评论

更重要的,IDE 可以智能跟踪,也就是按住 Ctrl 点击类名能跳转过去。

3年前 评论
JaguarJack

其实之前也可以这么写 只不过你要拼装字符串 现在还少了一次 @ 转数组呢

3年前 评论

这样你就可以控制路由的命名空间了。

3年前 评论

ied能找到8的工厂类啊?

3年前 评论

文档说是更加灵活,规范,不在硬编码写在程序里面,你如果习惯原先的,可以在RouteServiceProvider.php修改!

3年前 评论

个人感觉没啥好处呀,可有可无的改动

3年前 评论
WangYuanDa 3年前

和beego得路由写法差不多了

3年前 评论

之前的方式:$app->post('order/kaidian', 'OrderController@kaidian'); 得先去找OrderController在哪个目录下, 现在这种方式少了这一步解析,UserController::class 直接找到该类!所以速度提升一点点

3年前 评论

用ide可以直接点,而且不用打哪些控制器名,而且命名空间+控制器类名更加直观你可以明确知道是那个空间下的,速度更快一点,虽然更长了,但是对于ide的便捷根本不上大雅,而且发现以前model默认是没有model文件夹的现在分类了文件夹,不用我手动创建了。最后我不推荐 一楼那个 把空间写上面的做法。直接写一行就行了

3年前 评论

反正最后上线不都得来一遍 缓存操作么? cache:config 哪些玩意。所以,习惯就好吧,这个改动我觉得很好真的。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!