我想吐槽一下laravel8的新路由

这是laravel 7 的路由
Route::get('/user', 'UserController@index');

下面这是laravle 8 的路由
Route::get('/user', [UserController::class, 'index']);

而且laravel 8 路由还要引入所在的控制器
use App\Http\Controllers\UserController;

有几个控制器就要引入几个控制器,实在想不通这是个什么操作,麻烦大神帮忙指点迷津
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 16
leo

对于我来说 IDE 引入+跳转方便多了,极大地节省了时间

3年前 评论
leo

对于我来说 IDE 引入+跳转方便多了,极大地节省了时间

3年前 评论
<?php

namespace App\Http\Controllers;

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

这样就可以了,点击 index 还能跳到控制器里面的方法,非常好

3年前 评论

你可以在 app/Providers/RouteServiceProvieder.php 中把 protected $namespace = 'App\Http\Controllers'; 注释去掉就好了,文档都有的。

3年前 评论
Nymph (楼主) 3年前

这个其实一直是官方开发人员建议的写法,8 中直接转正了。

我从 7 开始就这样写,IDE 有自动导入,不用单独写use,还是很实用的。

3年前 评论
Nymph (楼主) 3年前

等你几百个路由,又不是你自己写的时候,你就会发现直接跳转过去多么方便了

3年前 评论
Nymph (楼主) 3年前
muggle (作者) 3年前
JerryBool 3年前
muggle (作者) 3年前
JerryBool 3年前
sanders

我感觉这样更好,自由度更高,可以 use 不同命名空间的控制器方法进来,而不用在声明路由的时候逐个写进来。

主要是我用 IDE 里面自动添加 use 的功能太爽了,换做普通编辑器可能会感觉不好。

3年前 评论

本质上,路由的第二个参数是一个 callable 函数,laravel8 之前的版本是对第二个参数做了一些特殊处理,判断参数类型,如果是字符串则尝试根据 @ 切割并解析,新的这个写法才是真正的函数调用

3年前 评论

我还是喜欢这样写

Route::match(["get","post"],'test', TestController::class . '@testInfo');
3年前 评论

@leo IDE 中会有这样的提示怎么设置下呢

file

file

3年前 评论

这个感觉属于功能倒退 :joy:

3年前 评论

用sublime-text 开发的就惨了

3年前 评论
Nymph (楼主) 3年前
wzg10086 3年前
Nymph (楼主) 3年前
aodaobi

用phpstrom 写的时候会自动帮你use ,点击index的时候能自动跳转到该控制器的方法

3年前 评论
Nymph (楼主) 3年前
aodaobi (作者) 3年前

自己改回去不就行了,,,一个命名空间的事,,,

3年前 评论
mouyong

file

这种写法能自动跳转?不用自己一个一个找文件,能迅速定位处理问题。

3年前 评论
Nymph (楼主) 3年前
自由与温暖是遥不可及的梦想

我觉得 现在路由这样子挺好的

3年前 评论

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