Skip to content
This repository
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 70 lines (58 sloc) 1.778 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
<?php
/**
* EvaEngine
*
* @link https://github.com/AlloVince/eva-engine
* @copyright Copyright (c) 2012 AlloVince (http://avnpc.com/)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Eva_Api.php
* @author AlloVince
*/

namespace Eva\View\Helper;

use Zend\View\Helper\AbstractHelper,
    Zend\ServiceManager\ServiceLocatorAwareInterface,
    Zend\ServiceManager\ServiceLocatorInterface,
    Zend\View\Exception;

/**
* Call a Controller action
*
* @category Eva
* @package Eva_View
* @subpackage Helper
* @copyright Copyright (c) 2012 AlloVince (http://avnpc.com/)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Action extends \Zend\View\Helper\AbstractHelper implements ServiceLocatorAwareInterface
{


    /**
* @var ServiceLocatorInterface
*/
    protected $serviceLocator;

    /**
* Set the service locator.
*
* @param ServiceLocatorInterface $serviceLocator
* @return AbstractHelper
*/
    public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
    {
        $this->serviceLocator = $serviceLocator;
        return $this;
    }

    /**
* Get the service locator.
*
* @return \Zend\ServiceManager\ServiceLocatorInterface
*/
    public function getServiceLocator()
    {
        return $this->serviceLocator;
    }


    public function __invoke($controllerName, $actionName, $params = array())
    {
        $controllerLoader = $this->serviceLocator->getServiceLocator()->get('ControllerLoader');
        $controllerLoader->setInvokableClass($controllerName, $controllerName);
        $controller = $controllerLoader->get($controllerName);
        return $controller->$actionName($params);
    }


}
Something went wrong with that request. Please try again.