Ich habe View-Helfer von ZF2, die nicht mehr mit ZF3 wegen ServiceLocatorAwareInterface
Veraltetes funktioniert.Was ist der beste Weg, um ZF2 ServiceLocatorAwareInterface in View Helper mit ZF3 zu refaktorieren?
Was ist der richtige Weg, um die Klasse Refactoring:
<?php
namespace Site\View\Helper;
use Zend\View\Helper\AbstractHelper;
use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class SlidersList extends AbstractHelper implements ServiceLocatorAwareInterface
{
protected $_serviceLocator;
public function __invoke()
{
return $this->getView()->render(
'partials/sliders',
array('sliders' => $this->getServiceLocator()->getServiceLocator()->get('Sliders/Model/Table/SlidersTable')->fetchAll(true))
);
}
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->_serviceLocator = $serviceLocator;
}
public function getServiceLocator()
{
return $this->_serviceLocator;
}
}
Sollte ich View Helfer Fabrik verwenden Service-Locator zu injizieren, und wenn ja, wie es getan werden sollte?
Warum benötigen Sie den Service Locator in Ihrem View Helper? Das Problem ist hier, nicht, wie man den Service-Locator Ihrem View-Helfer gibt. – Unex
Ich habe eine Antwort gegeben, wo [Sie erstellen eine Factory-Klasse, um Abhängigkeiten aufzulösen] (http://stackoverflow.com/questions/38696620/zf3-controller-not-able-to-access-the-model-class-table -located-in-einem anderen Modul/38703223 # 38703223). Die Frage bezieht sich eher auf einen Controller als auf einen View-Helper, der Prozess ist jedoch immer noch der gleiche. – AlexP