zf2 Erstellung eines einfachen Dienstes und Zugriff über Viewhelper

Ich versuche, in zf2 einen einfachen Dienst zu erstellen, auf den ich mit viewhelper zugreifen kann

Schritt 1. Ich habe eine Klasse in src / Application / Service / Service1.php wie folgt erstellt

namespace Application\Service;
    use Zend\ServiceManager\ServiceLocatorAwareInterface;
    use Zend\ServiceManager\ServiceLocatorInterface;

    class Service1 implements ServiceLocatorAwareInterface
    {

        public function __construct()
        {

        }

        public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
        {

        }    

        public function getServiceLocator()
        {

        }

    }

Schritt 2 Ich habe dies in der Datei module.php wie folgt eingerichtet.

public function getServiceConfig()
{    
     return array(
        'factories' => array(
            'Application\Service\Service1' => function ($sm) {
                return new \Application\Service\Service1($sm);
            },
        )
    );   
}

public function onBootstrap($e)
{        
   $serviceManager = $e->getApplication()->getServiceManager();

    $serviceManager->get('viewhelpermanager')->setFactory('Abc', function ($sm) use ($e) {
        return new \Application\View\Helper\Abc($sm); 
    });
}

Schritt 3 Endlich bekomme ich es in meiner View-Helfer-Methode src / Application / View / Helper / Abc.php test () wie folgt, ich kommentiere diese Zeile$this->sm->get('Application\Service\Service1'); Gibt es keinen Fehler, muss es etwas geben, was mir im Service fehlt?

namespace Application\View\Helper;

use Zend\View\Helper\AbstractHelper;

    class Abc extends AbstractHelper 
    {
       protected $sm;

       public function test()
        {
            $this->sm->get('Application\Service\Service1');
        }
        public function __construct($sm) {
            $this->sm = $sm;

        }
    }

Schritt 4 dann rufe ich meinen test view helfer in einer ansicht wie dieser auf.

$this->Abc()->test();

Ich erhalte folgenden Fehler.

Fatal error: Call to undefined method Application\Service\Service1::setView() in vendor/zendframework/zendframework/library/Zend/View/HelperPluginManager.php on line 127 Call Stack:

Was vermisse ich?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage