Laravel 4自定义身份验证提供程序-找不到类错误


Laravel 4 Custom Auth Provider - class not found error

我正试图按照本指南实现一个自定义身份验证提供程序:http://laravel-recipes.com/recipes/115/using-your-own-authentication-driver

在我的项目中,我创建了以下文件:

app/Lathesan/Extensions/DummyAuthProvider.php

使用步骤#1中的示例代码,并将"MyApp"重命名为"Latheesan"。

然后,我在app/start/global.php中添加了以下行

Auth::extend('dummy', function($app) {
    return new Latheesan'Extensions'DummyAuthProvider;
});

然后更新了app/auth/config.php并更改了驱动程序,如下所示:

'driver' => 'dummy',

最后,我修改了我的routes.php,如下所示:

Route::filter('auth', function($route, $request) {
    if (Auth::guest())
        return Redirect::guest('login');
});
Route::get('login',  array('uses' => 'HomeController@showLogin'));
Route::post('login', array('uses' => 'HomeController@doLogin'));
Route::get('logout', array('uses' => 'HomeController@doLogout'));
Route::get('/', function() {
    return View::make('hello');
})->before('auth');

在测试代码之前,我运行composer dump auto来生成自动加载文件。

当我参观我的测试场地时:http://laravel-test.local我得到这个错误:

Symfony''Component''Debug''Exception''FatalErrorException(E_ERROR)找不到类"Latheesan''Extensions''DummyAuthProvider"

知道为什么我的自定义身份验证提供程序类没有加载吗?

默认情况下,composer不知道如何自动加载新类,因此您需要在composer.json文件的autoload部分添加PSR规则。这应该会奏效:

"autoload": {
    "psr-0": {
        "Latheesan": "app/"
    },
    ...
}