Laravel Facades - 将参数传递给__construct()

时间:2014-02-17 22:25:04

标签: php laravel laravel-4 facade

如果我正在创建Facade,并且我想在实例化之前传递参数,我该怎么办?

1 个答案:

答案 0 :(得分:0)

通过IoC容器解析外观,所以你要做的就是正确绑定它。

创建Service Providor,然后传入您想要的内容:

use Illuminate\Support\ServiceProvider;

class FooServiceProvider extends ServiceProvider {

    public function register()
    {
        $this->app->bind('foo', function()
        {
            return new Foo('pass whatever you want');
        });
    }
}

不要忘记在应用的配置阵列中加载服务提供商。

然后在立面中使用该绑定键:

class Bar extends Facade {

    protected static function getFacadeAccessor() { return 'foo'; }

}