123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace Cube\View\Helper;
- use Cube\Controller\Front;
- class Action extends AbstractHelper
- {
-
- protected $_request;
-
- protected $_response;
-
- protected $_dispatcher;
-
- public function __construct()
- {
- $front = Front::getInstance();
- $this->_request = clone $front->getRequest();
- $this->_response = clone $front->getResponse();
- $this->_dispatcher = clone $front->getDispatcher();
- }
-
- public function action($action, $controller, $module = null, array $params = array())
- {
- $request = clone $this->_request;
- $this->_response->clearBody()
- ->clearHeaders();
- if ($module === null) {
- $module = $request->getModule();
- }
- if ($params) {
- $request->clearParams();
- }
- $request->setParams($params)
- ->setModule($module)
- ->setController($controller)
- ->setAction($action)
- ->setDispatched(true);
- $this->_dispatcher->dispatch($request, $this->_response, true);
- if (!$request->isDispatched()) {
-
- return '';
- }
- $response = $this->_response->getBody();
- return $response;
- }
- }
|