关于框架: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


    推荐阅读

      linux无效对象的命令?

      linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,l

      linux命令行远程控制?

      linux命令行远程控制?,系统,地址,服务,网络,电脑,软件,工具,实时,网站,命令,W

      linux全程控制命令?

      linux全程控制命令?,地址,工作,命令,基础,系统,网络,管理,目录,控制台,路径,l

      linux命令怎么控制的?

      linux命令怎么控制的?,地址,工作,系统,标准,命令,电脑,基础,管理,灵活,网站,l

      linux控制台停止命令?

      linux控制台停止命令?,地址,工具,平台,网络,下来,电脑,状态,命令,程序,进程,L

      linux命令控制声卡?

      linux命令控制声卡?,软件,检测,设备,工作,声卡,官方网站,标准,电脑,情况,位

      linux作业控制命令?

      linux作业控制命令?,工作,系统,信息,地址,管理,命令,目录,大地,行业,术语,lin

      linux退出控制台命令?

      linux退出控制台命令?,地址,工作,命令,图片,管理,系统,目录,信息,标准,控制

      linux切换命令控制台?

      linux切换命令控制台?,工作,地址,系统,管理,命令,控制台,目录,信息,标准,代

      linux命令控制联网?

      linux命令控制联网?,网络,系统,地址,工具,命令,环境,密码,信息,情况,基础,使

      linux控制声音的命令?

      linux控制声音的命令?,系统,数字,数据,命令,暂停,代码,盘中,环境,首页,手机,l

      linux模拟命令ls?

      linux模拟命令ls?,系统,地址,工作,命令,时间,基础,标准,信息,文件,目录,LS(LI

      linux基本命令框架?

      linux基本命令框架?,系统,基础,网络,设备,管理,基础知识,环境,管理系统,概

      linux控制台基本命令?

      linux控制台基本命令?,系统,工作,地址,信息,命令,管理,目录,工具,基础,控制

      linux在线模拟器命令?

      linux在线模拟器命令?,系统,设备,管理,命令,软件,数据,在线,网络,环境,盘中,l

      linux命令模拟软件?

      linux命令模拟软件?,软件,系统,地址,平台,电脑,环境,网上,工具,名字,名称,win

      linux命令打出控制台?

      linux命令打出控制台?,地址,工作,系统,管理,命令,工具,目录,基础,网络,信息,l

      linux命令行串口控制?

      linux命令行串口控制?,系统,设备,代码,数据,平台,地址,信息,波特率,控制台,