【问题标题】:Laravel 4 Custom Auth Provider - class not found errorLaravel 4 自定义身份验证提供程序 - 找不到类错误
【发布时间】:2014-12-17 02:56:21
【问题描述】:

我正在尝试按照本指南实施自定义身份验证提供程序: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”

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

【问题讨论】:

  • 您是否在 composer.json 中使用 PSR,以便它知道如何自动加载您的类?像这样的东西:"autoload": { "classmap": (...), "psr-0": { "Latheesan": "app/" } },
  • @milz 谢谢你,它成功了。我收到了另一个错误,请参阅下面对 Bogdan 的回复

标签: php authentication laravel-4


【解决方案1】:

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

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

【讨论】:

  • 谢谢你,我不再收到关于缺课的错误。现在我有一个不同的错误:命名空间声明语句必须是脚本中的第一个语句i.imgur.com/0EOq9KL.png(ps.我在更新composer.json 文件后再次composer dump-auto
  • 没关系;感谢这篇文章 (github.com/FriendsOfSymfony/FOSFacebookBundle/issues/70),我已经修复了这个错误。我的脚本开头有一个空格。
猜你喜欢
  • 2020-07-23
  • 2018-09-07
  • 2013-03-16
  • 2012-04-05
  • 1970-01-01
  • 2012-11-09
  • 2017-01-04
  • 2014-03-30
  • 1970-01-01
相关资源
最近更新 更多