我想在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