【问题标题】:Laravel IoC outside LaravelLaravel 外部的 Laravel IoC
【发布时间】:2015-08-12 14:24:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php laravel ioc-container pimple


    【解决方案1】:

    不,它不使用 Laravel 容器。如果你看 trait 中的方法:(github.com)

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-11-08
        • 2016-07-19
        • 1970-01-01
        • 2021-06-19
        • 2017-10-16
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        • 2017-05-09
        相关资源
        最近更新 更多