私はZF2システムを開発していますし、それは非常によく働いていたが、私は他のコンピュータでのリポジトリのクローンを作成した後、この非推奨エラーが登場している:は非推奨:機能的なシステムでサービスロケータを取得 - ZF2
をあなたがしていますModule \ Controller \ Controllerクラス内からサービスロケータを取得します。 ServiceLocatorAwareInterfaceは廃止され、ServiceLocatorAwareInterializerと共にバージョン3.0で削除されることに注意してください。作成時にすべての依存関係をコンストラクター引数またはセッターを介して受け入れるようにクラスを更新し、ファクトリを使用して注入を実行する必要があります。ライン258
上/home/path/project/vendor/zendframework/zend-mvc/src/Controller/AbstractController.phpにcomposer.json:私が取得するとき
"require": {
"php": ">=5.5",
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"zendframework/zendframework": "~2.5",
"doctrine/doctrine-orm-module": "0.*",
"hounddog/doctrine-data-fixture-module": "0.0.*",
"imagine/Imagine": "~0.5.0"
のエラーが表示されます。 (Zendの\ MVC \コントローラ\ AbstractActionControllerを拡張する)私のコントローラでサービス:Zendの\ MVC \コントローラ\ AbstractControllerでZendのコアで
$this->getServiceLocator()->get("Module\Service\Service");
は、このようなものです:
ただけで、この前public function getServiceLocator()
{
trigger_error(sprintf(
'You are retrieving the service locator from within the class %s. Please be aware that '
. 'ServiceLocatorAwareInterface is deprecated and will be removed in version 3.0, along '
. 'with the ServiceLocatorAwareInitializer. You will need to update your class to accept '
. 'all dependencies at creation, either via constructor arguments or setters, and use '
. 'a factory to perform the injections.',
get_class($this)
), E_USER_DEPRECATED);
return $this->serviceLocator;
}
:
public function getServiceLocator()
{
return $this->serviceLocator;
}
私は誰かが私が何をしてきたか知っている、すべてのものを試してみましたか?
それはメッセージの中にあります: '作成時にすべての依存関係を受け入れるようにクラスを更新する必要があります。これはc建設業者の引数やセッターを使って、注入を行うために工場を利用しています。 –
私はこのメッセージをよく理解していませんでした。「あなたのクラスを更新する必要はありますか? –
[PHP非推奨:ZFTool \ Controller \ ModuleControllerクラス内からサービスロケータを取得しています(http://stackoverflow.com/questions/35933113/php-deprecated-you-are-retrieving-the-service -locator-from-the-class-zft) –