Laravel 4&哨兵2延伸哨兵班

时间:2014-01-31 21:33:40

标签: php laravel laravel-4 inversion-of-control cartalyst-sentry

在Sentry 2中试图扩展哨兵课时遇到了一些问题。这就是我所做的以及我想做的事情:

创建了一个新的外观:

namespace pusers;

use Illuminate\Support\Facades\Facade;

class ADSentryFacade extends Facade {

    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return 'pusers\adsentry';
    }

}

延长了哨兵类(所有使用的名称空间都被移除,以便在帖子中清理它)。显然还有很多东西只是为了让它在这一点上起作用:

namespace pusers;

class ADSentry extends \Cartalyst\Sentry\Sentry {   
    public function authenticate(array $credentials, $remember = false, $adUser = false)
    {       
        return (string)$this->throttleProvider->isEnabled();
    }
}

在app.php内部,我更改了别名:

'Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry'

'Sentry' => 'pusers\ADSentryFacade'

问题: 当我使用我的别名时,除了实际的Sentry类启动之外几乎没什么。因此,您可以看到我正在尝试查看是否启用了限制。使用我的别名(总是返回true)它不使用config.php文件,但如果我将其更改为使用普通别名,它就可以正常工作(返回false,因为我在配置中将其设置为false)。

有关我做错的任何提示?我找不到任何人试图扩展实际的Sentry类。我发现的唯一的事情是在哨兵2论坛上,其中一个管理员建议有人创建一个新的外观,然后扩展Sentry,但就是这样。

我能提供的任何其他信息只是让我知道需要什么。 谢谢!

1 个答案:

答案 0 :(得分:0)

好好想通了,在cartalyst频道中得到了足够多的指针!

我继续创建了一个服务提供商。将应用名称从哨所更改为adsentry。然后在我的门面我把它从'pusers \ adsentry'改为'adsentry',这就是诀窍!