私のアプリケーションのzf2からzf3への移行に関するいくつかの問題があります。私は移行ガイドを読み、そこに記載されているように移行プロセスを開始しました。zf2からzf3への移行
マイグレーションガイドによると、もうコントローラに利用できるサービスの場所はありません。そして私はコントローラの各アクション内で、コンフィグ変数配列(module.config.phpにあります)、Doctrine MongoDB DocumentManagerとDoctrine EntityManagerを必要なモデルに挿入するために使用しました。今、私は非常に多くの廃止予定の警告メッセージを以下のようにしています。
PHP非推奨: のZend \ ServiceManager \ ServiceManagerの使い方:: getServiceLocatorがV3.0.0以降 を廃止されました。私はにアクセスする必要があるので、ライン169
に/var/www/html/LeapX/vendor/zendframework/zend-servicemanager/src/ServiceManager.php に代わり、工場 に渡されたコンテナを使用してくださいconfig変数を使用し、Doctrine DocumentManagerとDoctrine EntityManagerをモデルに挿入するには、コントローラ内で$this->getServiceLocator()
と呼ぶ必要がありました。この問題を解決する方法を教えてください。これらの依存関係をモデルクラスに直接注入する可能性はありますか?モデルに工場を使用する必要がありますか?
もう1つの質問は、コントローラに関する工場のことです。アプリケーションのコントローラごとに個別の工場を作成する必要がありますか?アプリケーションには、モジュールの中にかなりの数のコントローラが広がっています。私が各コントローラの専用工場を追加すると、その数は倍になります。これを行う最善の方法を教えてください。
この答えはここで見つけることができます:[ZF3でServiceManager](HTTPS: //stackoverflow.com/questions/42168619/servicemanager-in-zf3) –