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

时间:2014-10-21 18:57:58

标签: php authentication laravel-4

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

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

app / Latheesan / 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'

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

1 个答案:

答案 0 :(得分:0)

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

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