Laravel之外的Laravel IoC

时间:2015-05-29 16:14:58

标签: php laravel ioc-container pimple

我使用此repo作为使用Eloquent作为ORM的新CLI PHP项目的基础。

当您创建新的Eloquent capsule时,您可以选择setAsGlobal,这样可以从代码中的任何位置访问DB胶囊。

这是否意味着使用了Laravel容器?或者这只是影响数据库对象?

我一直在使用pimple作为容器,但如果Laravel已经有了一个可以通过Eloquent绑定的容器,那就简单多了 - 我想绑定一个日志编写器, Eloquent capsule,可能是全局容器的设置对象,因此我可以从任何地方访问它。

2 个答案:

答案 0 :(得分:1)

不,它不使用Laravels容器。如果你看一下特质中的方法:( github.com

public function setAsGlobal()
{
    static::$instance = $this;
}

您可以看到它只是在包含当前实例的类上设置静态属性,因此它将被重用于后续调用。

答案 1 :(得分:0)

试试这个解决方案。希望它有所帮助。

https://gist.github.com/reinink/9112262

"require":
{
    "illuminate/container": "4.0.*@dev",
}