我想吐槽一下laravel8的新路由

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

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

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

有几个控制器就要引入几个控制器,实在想不通这是个什么操作,麻烦大神帮忙指点迷津
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 16
leo

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

6个月前 评论
leo

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

6个月前 评论

我还是喜欢这样写

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

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

file

file

6个月前 评论
小李世界
<?php

namespace App\Http\Controllers;

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

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

6个月前 评论

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

6个月前 评论
Nymph (楼主) 6个月前

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

6个月前 评论

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

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

6个月前 评论
Nymph (楼主) 6个月前

用sublime-text 开发的就惨了

6个月前 评论
Nymph (楼主) 6个月前
wzg10086 6个月前
Nymph (楼主) 6个月前

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

6个月前 评论
Nymph (楼主) 6个月前
muggle (作者) 6个月前
di-gua 6个月前
muggle (作者) 6个月前
di-gua 6个月前

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

6个月前 评论
Nymph (楼主) 6个月前
aodaobi (作者) 6个月前

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

6个月前 评论

file

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

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

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

6个月前 评论
sanders

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

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

6个月前 评论

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

6个月前 评论

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