关于框架:PHP的控制容器反转?

关于框架:PHP的控制容器反转?

Inversion of Control Container for PHP?

我正在尝试用PHP编写TDD样式,而我最大的绊脚石之一(除了缺少像样的IDE之外)是我必须使自己的IoC容器被黑客入侵,只是为了正确地注入所有模拟对象。

有没有人在PHP中使用过Ioc容器? 我所能找到的只是在烦人的phpclasses.org上的PHP IOC,它似乎几乎没有文档,而且追踪者很少。


我玩过一些用于PHP的DI框架,但是在生产中没有使用过。有一些链接:

  • http://www.stubbles.net/其中
    我认为是我尝试过的最古老的
  • http://php.xjconf.net/
  • FLOW3-我相信这个会
    成为一个非常好的框架(其
    Beta版)
  • 您提到您将其用于TDD-因此,也许可以看看PHP中用于单元测试的依赖注入


    Phemto正在重新开发,并且看起来很有希望,恕我直言。

    您可能要查看的其他一些类似项目:

    桶(免责声明:我是这一本书的主要作者)

    picocontainer的php端口已经存在很长时间了。我不认为它正在得到积极发展,但另一方面,我认为它相当稳定。自从我看了已经很久了。

    我最近偶然发现的一个相当新的项目是Crafty。不确定有多少人使用它。

    我也在看sphicy,看起来很有趣。


    关于Symfony依赖注入或symfony 2.0项目中的PHP 5.3+等效组件呢?


    您可能还想尝试Ding(http://marcelog.github.com/Ding),它是针对Java的Spring(tm)建模的。它是控件和依赖项注入容器的完整版本,它还支持AOP


    PHP-DI是另一个依赖项注入容器。

    它具有通过注释和最少配置进行依赖注入的功能,下面是一个示例:

    1
    2
    3
    4
    5
    6
    7
    class Foo {
        /**
         * @Inject
         * @var Bar
         */

        private $bar;
    }

    它非常易于使用,并且例如与Zend Framework集成。

    (是的,我确实在这个框架上工作)


    在过去的六个月中,我一直在研究名为Substrate的PHP IoC / DI容器。这项工作仍在进行中,但是已经在生产环境中部署了一个半月,并且到目前为止运行良好。

    Substrate受Spring框架的启发,但在编写时考虑了PHP的优势和局限性。此时的文档非常少,但是有一些示例代码,包括一个单元测试示例。您认为这是否可以用于TDD?


    Laravel 4具有最好的IoC和DI框架。如果您不介意使用框架,则可以使用Laravel 4


    推荐阅读