【php】Laravel中的Auth::routes为什么是这样写?
Laravel-5.5里的自带的认证系统中, 路由 Auth::routes()
为什么是这样调用的?
而不是Routes::Auth()
?
文件1: routes\web.php
<?phpAuth::routes();
文件2: vendor\laravel\framework\src\Illuminate\Routing\Router.php
/*** Register the typical authentication routes for an application.
*
* @return void
*/
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\[email protected]')->name('login');
$this->post('login', 'Auth\[email protected]');
$this->post('logout', 'Auth\[email protected]')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\[email protected]')->name('register');
$this->post('register', 'Auth\[email protected]');
// Password Reset Routes...
$this->get('password/reset', 'Auth\[email protected]')->name('password.request');
$this->post('password/email', 'Auth\[email protected]')->name('password.email');
$this->get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset');
$this->post('password/reset', 'Auth\[email protected]');
}
回答
先看源码,看看 Auth::routes( ) 其实是做了什么 ?
// 如果你不知道 $app->make('router') 的返回值,dd() 打印一下就会知道是 Router 实例static::$app->make('router')->auth();
底层其实还是手动创建了一个Router实例,并调用了它的auth方法,你所说的 Routes::Auth()也是这样的。
所以,无论你使用 Routes::Auth() 或者 Auth::routes() 其实都是生成 Router 实例并调用了它的 auth方法,作者为什么建议使用 Auth::routes() ,稍微动脑就能想到,Auth::routes()这种写法更容易让人知道生成的路由是和认证权限有关的,和 Auth::id() , Auth::check 等对应,更规范整齐。
简单来说 文件 2 才是 Route 组件的核心 所以写成 $this
很正常
文件 1 的话 需要看下文档的详细解释:
https://d.laravel-china.org/d...
以上是 【php】Laravel中的Auth::routes为什么是这样写? 的全部内容, 来源链接: utcz.com/a/106881.html