ich ein ZF2 System bin zu entwickeln und es funktioniert sehr gut, aber nachdem ich das Repository in anderen Computern klonen haben diese veralteten Fehler aufgetreten:Veralten: Abrufen von Service-Locator in funktionsfähigen System - ZF2
Sie sind Abrufen des Service-Locators aus der Klasse Module \ Controller \ Controller. Bitte beachten Sie, dass ServiceLocatorAwareInterface veraltet ist und in Version 3.0 zusammen mit dem ServiceLocatorAwareInitializer entfernt wird. Sie müssen Ihre Klasse aktualisieren, um alle Abhängigkeiten bei der Erstellung entweder über Konstruktorargumente oder Setter zu akzeptieren, und eine Factory zum Ausführen der Injektionen verwenden. in /home/path/project/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php on line 258
Die 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"
Der Fehler erscheint, wenn ich abrufen der Dienst in meinem Controller (Erweiterung Zend \ Mvc \ Regler \ AbstractActionController):
$this->getServiceLocator()->get("Module\Service\Service");
im Zend Kern bei Zend \ Mvc \ Regler \ AbstractController ist wie folgt:
012.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;
}
Vor war nur das:
public function getServiceLocator()
{
return $this->serviceLocator;
}
ich alles versucht habe, jemand weiß, was ich zu tun habe?
Es ist genau dort in der Nachricht: 'Sie müssen Ihre Klasse aktualisieren, um alle Abhängigkeiten bei der Erstellung zu akzeptieren, entweder über c Sie können auch eine Fabrik verwenden, um die Injektionen durchzuführen. " –
Ich habe diese Nachricht nicht gut verstanden," muss Ihre Klasse aktualisieren ", aber welche Klasse? –
Mögliches Duplikat von [PHP Veraltet: Sie rufen den Service Locator aus der Klasse ZFTool \ Controller \ ModuleController ab (http://stackoverflow.com/questions/35933113/php-deprecated-you-are-retrieving-the-service -locator-from-in-the-class-zft) –