Laravel 外部 IoC Laravel

Laravel IoC outside Laravel

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

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

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

我一直在使用 pimple 作为容器,但如果 Laravel 已经有一个我可以通过 Eloquent 绑定的容器,那会简单得多——我想要将日志写入器、Eloquent 胶囊和可能的设置对象绑定到全局容器,以便我可以从任何地方访问它。

不,它不使用 Laravels 容器。如果您查看特征中的方法:(github.com)

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

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

试试这个解决方案。希望对你有帮助。

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

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