ServiceManager
の場合、DI
は何ですか?そのユースケースは何ですか?Zend DiとServiceManagerの依存関係注入コンテナ
彼らはzend-di
とzend-servicemanager
両方の構成ファイルに私たちは、このようなaliases
やinvokables
など、いくつかのオプションを設定することができますので、似ているように見えます。
私はこれらのコンポーネントで何が起こっているのかをよりよく理解しようとしており、ドキュメントでは十分な情報が得られませんでした。
ServiceManager
の代わりにDi
を使用する必要がありますか?
http://www.php-fig.org/psr/psr-11/meta/ – Dennis
上の一般的なコンテナの良い議論がありますあなたのフレームワークの一部でない限り、現代のアドバイスは "DIまたはSMを使わないでください"と思われます。 ZendはFactoryベースのService Manager(本質的に制限されたDIコンテナです)を使用しています。あなたが自分のクラスにコンテナを注入しないように注意しなければなりませんが、コンテナはあなたの設定の一部として使うことができます応用。すなわち、Zendでは、フレームワークの機能を使用して、依存関係がどのように配線されているかをカスタマイズできます。いくつかの最近の例がここにあります:https://docs.zendframework.com/tutorials/getting-started/database-and-models/ – Dennis