为什么我找不到" App \ Extensions \ RiakUserProvider"我的Laravel项目中的命名空间在此之后"添加自定义提供程序"教程?

时间:2017-01-25 15:47:59

标签: php laravel laravel-5 laravel-5.3 laravel-authorization

我是 PHP Laravel 的新手。

我正在使用 Laravel 5.3 应用程序,我必须使用自定义网络服务来检查用户凭据,因此我尝试按照有关添加自定义提供程序的正式教程< / strong>处理用户访问权限:https://laravel.com/docs/5.3/authentication#adding-custom-user-providers。所以,理论上看起来很简单,但我发现了一些困难。

正如您在上一个教程中作为第一步所看到的,它修改了Laravel项目中包含的 App \ Providers \ AuthServiceProvider 类。

所以,我根据教程示例修改了 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 &#34; Undefined Extensions名称空间&#34; 所以它不能使用 RiakUserProvider 我的代码中的类。

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

RiakUserProvider 类究竟是什么?

这段代码究竟是什么:

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

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

1 个答案:

答案 0 :(得分:2)

在Laravel文档中,<LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_short_text" android:layout_height="wrap_content" android:layout_width="wrap_content" tools:text="short text" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_long_text" android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="0.8" android:textStyle="bold" tools:text="a pretty long text" /> <View android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.2"/> </LinearLayout> </LinearLayout> 类只是一个示例自定义用户提供程序。类位于RiakUserProvider命名空间中,但未提供实际的提供程序类内容。

如果要创建自定义用户提供程序,则应在App\Extensions文件夹中创建名为Extensions的文件夹,并创建包含App类的RiakUserProvider.php文件。这遵循PSR-4类自动加载标准。

创建自己的用户提供商时,请确保它实现RiakUserProvider界面。

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

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