アプリケーションの zf2 から zf3 への移行に関していくつかの問題があります。移行ガイドを読み、そこで説明されているように移行プロセスを開始しました。
移行ガイドによると、コントローラーで使用できる serviceLocator はもうありません。そして、すべてのコントローラーアクション内でそれを使用して、構成変数配列 (module.config.php にあります)、Doctrine MongoDB DocumentManager、およびDoctrine EntityManagerを必要なモデルに挿入していました。現在、以下のような非推奨の警告メッセージが多数表示されています。
PHP 非推奨: Zend\ServiceManager\ServiceManager::getServiceLocator の使用は v3.0.0 以降非推奨です。/var/www/html/LeapX/vendor/zendframework/zend-servicemanager/src/ServiceManager.php の 169 行目の代わりに、ファクトリに渡されたコンテナーを使用してください。
構成変数にアクセスし、 Doctrine DocumentManagerとDoctrine EntityManager$this->getServiceLocator()
をモデルに挿入する必要があるため、コントローラー内で呼び出す必要がありました。この問題を解決する方法を教えてください。これらの依存関係をモデル クラスに直接注入する可能性はありますか? モデルにファクトリを使用する必要がありますか?
もう 1 つの質問は、コントローラーに関するファクトリに関しては、アプリケーションのコントローラーごとに個別のファクトリを作成する必要があるかどうかです。アプリケーション内のいくつかのモジュール内に分散された非常に多くのコントローラーがあります。コントローラーごとに専用の工場を追加すると、その数は 2 倍になります。これを行う最善の方法を教えてください。