【问题标题】:Pimple dependency injection static or object疙瘩依赖注入静态或对象
【发布时间】:2014-09-30 14:14:33
【问题描述】:

Pimple 帮助在应用程序中重复使用相同的对象,并管理依赖关系。

但是如何管理 Pimple 本身?

我应该创建一个全局对象吗?还是让它成为静态类?还是使用函数?

我想从任何地方访问 Pimple 方法、控制器、模型、插件等...

谢谢!!

【问题讨论】:

  • 如果你想从任何你陷入服务定位器反模式的地方访问粉刺方法
  • 感谢您的回复。你是什​​么意思?我在一个地方将新对象添加到 Pimple,然后在其他地方重新使用该对象。示例我需要从模型访问数据库对象,也需要从库或插件挂钩访问。所以我需要访问 Pimple。你能再解释一下吗。谢谢!!
  • @jlvaquero 你能告诉我替代方案吗?

标签: php dependencies pimple


【解决方案1】:

很多人认为 ServiceLocator 是一种反模式,但如果您谨慎使用它,几乎没有什么坏处。

<?php

namespace Acme;

class ServiceLocator
{
    static protected $container;

    public static function setContainer(\Pimple $container)
    {
        static::$container = $container;
    }

    public static function get($id)
    {
        return static::$container[$id];
    }
}

【讨论】:

  • 我的意思是滥用 SL 是反模式。到处使用 DI 容器是滥用。 DI 应该在顶层构建你的依赖链。然后,使用该层并忘记 DI 或 SL。
  • 你说:“那么,使用层,忘记 DI 或 SL。”我的回复:“你的“层”是什么意思?你能提供一个例子我如何设置数据库对象并在孔应用程序中重用他吗?谢谢!!”
猜你喜欢
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多