我想在PHP中编写TDD风格,并且我最大的绊脚石之一(除了缺乏一个体面的IDE)是我必须让自己的IoC容器一起黑客才能正确注入所有模拟对象。PHP的控制容器反转?
有没有人在php中使用Ioc容器?我所能找到的是PHP IOC on the ever-annoying phpclasses.org,它似乎几乎没有文档,也没有多少关注。
我想在PHP中编写TDD风格,并且我最大的绊脚石之一(除了缺乏一个体面的IDE)是我必须让自己的IoC容器一起黑客才能正确注入所有模拟对象。PHP的控制容器反转?
有没有人在php中使用Ioc容器?我所能找到的是PHP IOC on the ever-annoying phpclasses.org,它似乎几乎没有文档,也没有多少关注。
我玩过一些用于PHP的DI框架,但我没有在生产中使用过。有一些链接:
你提到你会使用它的TDD - 所以也许看看Dependency Injection for Unit Tests in PHP
过去六个月,我一直致力于PHP IoC/DI Container命名Substrate。它仍然是一个正在进行的工作,但它已经在deployed in production一个半月,到目前为止工作得很好。
基材的灵感来自于Spring Framework,但是以PHP的优点和局限性着称。目前这个文档是非常小的,但有一些sample code,包括一个单元测试的例子。这是你认为你可以用于TDD的东西吗?
您可能还想尝试在Spring(tm)for Java之后建模的Ding(http://marcelog.github.com/Ding)。它是一个完整的控制和依赖注入容器的反转,它也支持AOP
那么来自symfony 2.0项目的Symfony Dependency Injection或PHP 5.3+等效的component怎么样。
PHP-DI是另一个依赖注入容器。
设有依赖注入通过注释和最低配置,这里有一个例子:
class Foo {
/**
* @Inject
* @var Bar
*/
private $bar;
}
它非常容易使用,它与Zend框架集成了例子。
(是的,我做这个框架工作)
Laravel 4拥有最好的IoC和DI框架。如果你不介意使用框架的Laravel 4是要走的路
看看我的PHP 5的依赖项注入项目:https://github.com/jamolkhon/Sharbat – Jamol 2011-10-06 12:26:23
为什么这个问题关闭作为off-话题?这是这几天最重要的话题之一 – 2014-04-20 19:31:19
我同意,问题是如果有的话,而不是建议(六年前问过)。但是,由于没有“正确的”答案,我可以看到为什么它可以被视为脱离主题。 – 2014-04-21 14:19:57