为什么我按照 "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?
我对 PHP 和 Laravel.
完全陌生
我正在开发一个 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
我对 PHP 和 Laravel.
完全陌生我正在开发一个 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