[英]Why I can't find the “App\Extensions\RiakUserProvider” namespace in my Laravel project following this “Adding a custom provider” tutorial?
我对PHP和Laravel完全陌生。
我正在开发Laravel 5.3应用程序,我必须使用自定义 Web 服务来检查用户凭据,因此我尝试按照有关添加自定义提供程序来处理用户访问的官方教程进行操作: 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说“未定义的扩展命名空间”,所以它不能在我的代码中使用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'));
});
在 Laravel 文档中, RiakUserProvider
类只是一个示例自定义用户提供程序。 类位于App\\Extensions
命名空间中,但未提供实际的提供程序类内容。
如果您想创建自定义用户提供程序,您应该在您的App
文件夹中创建一个名为Extensions
的文件夹,并创建包含RiakUserProvider
类的RiakUserProvider.php
文件。 这遵循PSR-4类自动加载标准。
当您创建自己的 User Provider 时,请确保它实现了Illuminate\\Contracts\\Auth\\UserProvider
接口。
这是创建一个很好的分步教程:
https://www.georgebuckingham.com/laravel-52-auth-custom-user-providers-drivers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.