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

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

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

Complicated
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论

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