これは、Zendフレームワークに関する限り、DIに関連しています。私の質問は、DI容器をどこで使用するかということです。初期化のためにすべてのブートストラップを使用する必要がありますか?残りのアプリケーションは存在を知らないままにしておきますか?それともコントローラ、モデル、ヘルパーなどに渡して、必要に応じて使用するのがよいのでしょうか? Zend 2はどうですか?Zend/Zend 2の依存性注入コンテナを使用する場所
答えて
一般的に依存性注入に関連しているので、SOLIDコードを記述しようとしている場合は、練習する必要があります。私がしました
http://ralphschindler.com/2011/05/18/learning-about-dependency-injection-and-php
:それはDICを使用する開発者はコードに直接ジャンプする前に持っていなければならない背景知識(と思う)に関連し、私は依存性の注入をテーマに書いた2件の記事を持っていますまた、ZF2のコードベースでのDICコンポーネントであるZendの\ディを使用する方法のいくつかの例をコンパイル:
https://github.com/ralphschindler/Zend_DI-Examples/
もう一点、私が作るために...あなたのようにDICを渡して起動したらたいと思いますコントローラ、モデルなどへの依存性...あなたのDiCは実際にサービス・ロカになりますその時点でこれは完全に受け入れられますが、サービスロケータを使用することは設計目標の一部であったはずです。
ZF2の次のベータサイクルでは、DiとService Locatorがモジュール、コントローラを通じてどのように使用され、どのように依存関係がヘルパーやモデルのようなものにプッシュされるのかがよく分かります。だからそれに気をつけてください。
あなたが始めることを望みます。
私はいくつかの答えを読んでいます。まず、私が知っている限り、Zendフレームワーク< ver 2でDependency Injection Containerに "composition root"での作業を依頼するのは現在のところ組み込まれていません。
したがって、ここで既に述べたように、最善の策はサービスロケータです。私はそれを行うためにZendフレームワークアプリケーションのセットアップを考え出しました。 hereをチェックしてください。一言で言えば
、what it doesは、Zendアプリケーション・ブートストラップクラスの
- ブートストラップsymfonyの依存性注入
- があなたのサービス
- 1. 依存性注入コンテナ
- 2. 依存性注入を使用した依存性注入器の注入
- 3. 各クラスライブラリの依存性注入コンテナ
- 4. 角2依存性注入
- 5. ランタイムデータを使用した依存性注入:工場と直接の依存性
- 6. ケースクラス/コンパニオンオブジェクトパターンを使用する場合のScala依存性注入
- 7. Asp.netの依存関係注入場所
- 8. PHP依存性注入コンテナ(工場出荷時)
- 9. IOCコンテナ:依存性注入、依存関係参照?
- 10. Symfony 2:依存性注入と特性
- 11. コマンドパターン使用時の依存性注入
- 12. インタフェースと依存性注入の使用
- 13. 依存性注入角2 - イオン2&タイスクリプト
- 14. 依存性注入コンテナ(PHP)のインスタンスを保持する方法
- 15. 円の依存性注入角度2
- 16. Symfony 2:コントローラの依存性注入(DI)
- 17. デコレータの角2依存性注入
- 18. サブチャイルドコンポーネントへのAngularJS 2依存性注入
- 19. 依存性注入
- 20. 依存性注入
- 21. 依存性注入
- 22. Zend Framework依存性注入対Symfony2依存性注入
- 23. LISPの依存性注入(とIoCコンテナに関する)のポイント
- 24. 依存性注入:コンストラクタ注入を使用
- 25. symfony 2依存性注入とオートワイヤリング
- 26. ASP.NET Core 2 WEB API - 依存性注入
- 27. アングル2サービス依存性注入問題
- 28. 角2 - 依存性注入とバレルリング
- 29. 依存性注入問題 - 角度2
- 30. symfony2依存性注入コンテナを認識しているPHPUnitテストケース
DIコンテナはコンポジションルートにカプセル化する必要があります。http://blog.ploeh.dk/2011/07/28/CompositionRoot.aspx –
ありがとう@MarkSeemann!素晴らしいコメント。 – orourkedd