zf2 Tworzenie prostej usługi i dostęp do niej przez viewhelper

Próbuję utworzyć prostą usługę w zf2, do której mogę uzyskać dostęp za pomocą viewhelper

Krok 1. Mam następujące klasy w src / Application / Service / Service1.php

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()
        {

        }

    }

Krok 2 Ustawiłem to w pliku module.php jak poniżej.

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); 
    });
}

Krok 3 w końcu dostaję to w mojej metodzie helper src / Application / View / Helper / Abc.php test () w ten sposób, I komentuję ten wiersz$this->sm->get('Application\Service\Service1'); nie ma błędu, musi być coś, czego brakuje mi w służbie?

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;

        }
    }

Krok 4 następnie dzwonię do pomocnika widoku testowego w jednym z takich widoków.

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

Dostaję następujący błąd.

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

czego mi brakuje?

questionAnswers(2)

yourAnswerToTheQuestion