私はPHPでTDDスタイルをコーディングしようとしています。私の最大の障害(IDEの欠如を除く)の1つは、自分のモックオブジェクトを正しく挿入するためにIoCコンテナを一緒にハッキングする必要があるということです。PHPのコントロールコンテナの反転?
PHPでIocコンテナを使用した人はいますか?私が見つけたのはPHP IOC on the ever-annoying phpclasses.orgなので、ほとんどドキュメントがなく、次のようなものはほとんどないようです。
私はPHPでTDDスタイルをコーディングしようとしています。私の最大の障害(IDEの欠如を除く)の1つは、自分のモックオブジェクトを正しく挿入するためにIoCコンテナを一緒にハッキングする必要があるということです。PHPのコントロールコンテナの反転?
PHPでIocコンテナを使用した人はいますか?私が見つけたのはPHP IOC on the ever-annoying phpclasses.orgなので、ほとんどドキュメントがなく、次のようなものはほとんどないようです。
私はPHP用のいくつかのDIフレームワークで遊んでいましたが、私は本番環境で使用していません。いくつかのリンクがあります:私は
あなたはTDDのためにそれを使用すると述べました - だから多分見てくださいDependency Injection for Unit Tests in PHP
私は最近6ヶ月間Substrateという名前のPHP IoC/DI Containerを研究しています。それはまだ進行中の仕事ですが、それは1ヶ月半の間にdeployed in productionであり、これまでかなりうまくいっています。
基盤はSpring Frameworkからインスピレーションを受けていますが、PHPの強みと限界を念頭に置いて書かれています。この時点ではドキュメントはかなりごくわずかですが、ユニットテストの例を含むsample codeがあります。これは、あなたがTDDに使用できるかもしれないと思うものですか?
Phemtoが再び開発されており、かなり有望なIMHOに見えます。あなたが見たいかもしれないと
いくつかの他の類似プロジェクト、:
bucket(免責事項:私はこの1つの主要な作者だ)
は、長い時間を回避されています。私はそれがもはや積極的に開発されているとは思わないが、一方で、それはかなり安定していると信じている。私はそれを見て以来、それは長い時間でした。
新しいプロジェクトですが、最近私はつまずいたのですCraftyです。しかし、どれだけ多くの人がそれを使用しているかはわかりません
私はまた、面白そうに見えるsphicyを見ています。
Craftyのダウンロードリンクが壊れています。私は著者に語った、彼は死んだプロジェクトを言った、PHPの新しいバージョンは、PHPのリフレクションAPIの変更のためにそれを壊した。 –
OK - それに応じて投稿を更新しました。 – troelskn
また、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 Frameworkのと統合されています。
(はい、私はこのフレームワーク上で動作します)
+1私はZendの人たちを知っています。彼らはここ数年、PHPでより自然な概念を作り、PHPコミュニティでより理解しやすくなったことを知っています。 –
Laravel 4は最高のIoCとDIフレームワークを持っています。あなたがフレームワークを使用して気にしないなら、Laravel 4が行く方法です
It's zeh Best !! 1 Zeh Best !!!うーん...なぜ? – Gordon
PHP 5のための私の依存性注入プロジェクトを見てください:https://github.com/jamolkhon/Sharbat – Jamol
なぜこの質問は、トピック?これは最近の最も重要なトピックの一つです –
私は同意します。質問は存在するかどうか、推薦ではない(そして6年前に質問された)。しかし、「正しい」答えがないので、なぜそれが話題外であると見ることができるのか分かります。 –