为什么我按照 "Adding a custom provider" 教程在我的 Laravel 项目中找不到 "App\Extensions\RiakUserProvider" 命名空间?

Why I can't find the "App\Extensions\RiakUserProvider" namespace in my Laravel project following this "Adding a custom provider" tutorial?

我对 PHPLaravel.

完全陌生

我正在开发一个 Laravel 5.3 应用程序,我必须使用自定义 Web 服务来检查用户凭据,所以我正在尝试按照这个官方教程进行操作添加自定义提供程序 来处理用户访问:https://laravel.com/docs/5.3/authentication#adding-custom-user-providers。所以,理论上看起来很简单,但我发现了一些困难。

正如您在上一教程中看到的,第一步是修改包含在 Laravel 项目中的 App\Providers\AuthServiceProvider class。

所以,我根据教程示例修改了我的AuthServiceProvider

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

use Illuminate\Support\Facades\Auth;
use App\Extensions\RiakUserProvider;
use Illuminate\Support\ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        // CUSTOM CODE:
        Auth::provider('riak', function ($app, array $config) {
            // Return an instance of Illuminate\Contracts\Auth\UserProvider...

            return new RiakUserProvider($app->make('riak.connection'));
        });
    }
}

问题是找不到App\Extension命名空间,这个:

use App\Extensions\RiakUserProvider;

PhpStorm 以红色表示 Exstensions "Undefined Extensions namespace" 所以它不能使用 RiakUserProvider class 在我的代码中。

为什么?我必须在 Composer 中添加一些依赖项吗?怎么了?我错过了什么?我该如何解决这个问题?

RiakUserProvider class 到底是什么?

这段代码到底是做什么的:

Auth::provider('riak', function ($app, array $config) {
    // Return an instance of Illuminate\Contracts\Auth\UserProvider...

    return new RiakUserProvider($app->make('riak.connection'));
});

在 Laravel 文档中,RiakUserProvider class 只是一个示例自定义用户提供程序。 Class 位于 App\Extensions 命名空间,但未提供实际提供者 class 内容。

如果您想创建自定义用户提供程序,您应该在 App 文件夹中创建一个名为 Extensions 的文件夹,并创建包含 RiakUserProvider [=29] 的 RiakUserProvider.php 文件=].这遵循 PSR-4 class 自动加载标准。

当您创建自己的用户提供程序时,请确保它实现了 Illuminate\Contracts\Auth\UserProvider 接口。

这是一个很好的创建一个的分步教程:

https://www.georgebuckingham.com/laravel-52-auth-custom-user-providers-drivers