私は PHP で TDD スタイルをコーディングしようとしていますが、私の最大の障害の 1 つは (適切な IDE がないことを除いて)、すべてのモック オブジェクトを適切に挿入するためだけに、ハッキングされた独自の IoC コンテナーを作成する必要があることです。
PHPでIocコンテナを使用した人はいますか? 私が見つけることができたのは、常に迷惑なphpclasses.orgのPHP IOCだけで、ほとんどドキュメントがなく、フォローもあまりないようです。
私は PHP で TDD スタイルをコーディングしようとしていますが、私の最大の障害の 1 つは (適切な IDE がないことを除いて)、すべてのモック オブジェクトを適切に挿入するためだけに、ハッキングされた独自の IoC コンテナーを作成する必要があることです。
PHPでIocコンテナを使用した人はいますか? 私が見つけることができたのは、常に迷惑なphpclasses.orgのPHP IOCだけで、ほとんどドキュメントがなく、フォローもあまりないようです。
PHP 用の DI フレームワークをいくつか試しましたが、本番環境では使用していません。いくつかのリンクがあります:
あなたはそれをTDDに使用すると述べたので、PHPでの単体テストの依存性注入を見てください。
Phemtoは再び開発されており、非常に有望に見えます。
あなたが見たいかもしれない他のいくつかの同様のプロジェクト:
バケット(免責事項: 私はこれの主な作成者です)
picocontainerのphp-port は、長い間存在しています。もう活発に開発されているとは思いませんが、その一方で、かなり安定していると思います。それにしても久しぶりに見ました。
私が最近偶然見つけたかなり新しいプロジェクトはCraftyです。ただ、何人が使っているかは不明です。
面白そうなsphicyも見ています。
Symfony Dependency Injectionまたはsymfony 2.0 プロジェクトの PHP 5.3+ 相当コンポーネントについてはどうですか。
Java 用の Spring(tm) をモデルにした Ding (http://marcelog.github.com/Ding) も試してみてください。コントロールと依存性注入コンテナの完全な反転であり、AOP もサポートします。
PHP-DIは、別の依存性注入コンテナーです。
注釈と最小限の構成による依存性注入が特徴です。以下に例を示します。
class Foo {
/**
* @Inject
* @var Bar
*/
private $bar;
}
使い方はとても簡単で、たとえば Zend Framework と統合できます。
(はい、私はこのフレームワークに取り組んでいます)
過去 6 か月間、Substrate という名前のPHP IoC/DI コンテナーに取り組んできました。これはまだ進行中の作業ですが、本番環境にデプロイされてから1 か月半が経過し、これまでのところかなりうまく機能しています。
Substrate は Spring Framework にインスパイアされていますが、PHP の長所と制限を念頭に置いて作成されています。この時点でドキュメントは最小限ですが、単体テストの例を含むサンプル コードがいくつかあります。これは、TDD に使用できると思われるものですか?
Laravel 4 は最高の IoC および DI フレームワークを備えています。フレームワークの使用を気にしない場合は、Laravel 4 が最適です。