我正试图按照本指南实现一个自定义身份验证提供程序: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/"
},
...
}