我正在尝试用laravel 4进行外观。我正在使用服务提供商。在服务提供者寄存器中我制作单例实例,但我想通过接口访问它。它工作我只是不知道如何访问该对象的引用接口。我的代码如下:
class AuthenticationServiceProvider extends ServiceProvider
{
public function register()
{
\App::singleton('Auth\iAuthenticate', function()
{
return new DbAuthentication();
});
}
}
然后如果我在另一个php类中写这个:
Auth\iAuthenticate::someMethod()
它返回我不能称之为抽象的方法,而这些方法并不适合我。如何访问在服务提供商中创建的实例?
答案 0 :(得分:1)
您可以使用$instance = App::make('Auth\iAuthenticate');
它还建议使用this->app
属性。它可能会让你免于将来的一些麻烦。
public function register()
{
$this->app->singleton('Auth\iAuthenticate', function()
{
return new DbAuthentication();
});
}