private function setUpDispatcher()
 {
     $this->dispatcher->setControllerName($this->router->getControllerName());
     $this->dispatcher->setActionName($this->router->getActionName());
     $this->dispatcher->setParams($this->router->getParams());
     $oDispatcherEventManager = new Manager();
     $oDispatcherEventManager->attach('dispatch:beforeDispatch', function (Event $oEvent, Dispatcher $oDispatcher, $data) {
         return false;
     });
     $this->dispatcher->setEventsManager($oDispatcherEventManager);
 }
Пример #2
0
 public function setActionName($actionName)
 {
     /** @var \Phalcon\Http\Request $request */
     $request = $this->getDI()->get('request');
     $actionName = strtolower($request->getMethod());
     parent::setActionName($actionName);
 }
Пример #3
0
 /**
  * Sets the test up by loading the DI container and other stuff
  *
  * @return Phalcon\DI
  */
 protected function setUp()
 {
     parent::setUp();
     // Set the dispatcher
     $this->di->set('dispatcher', function () {
         $dispatcher = new PhDispatcher();
         $dispatcher->setControllerName('test');
         $dispatcher->setActionName('empty');
         $dispatcher->setParams(array());
         return $dispatcher;
     });
     $this->di->set('escaper', function () {
         return new PhEscaper();
     });
 }
Пример #4
0
 /**
  * Sets the test up by loading the DI container and other stuff
  *
  * @param  \Phalcon\DiInterface $di
  * @param  \Phalcon\Config      $config
  * @return void
  */
 protected function setUp(\Phalcon\DiInterface $di = null, \Phalcon\Config $config = null)
 {
     parent::setUp($di, $config);
     // Set the dispatcher
     $this->di->setShared('dispatcher', function () {
         $dispatcher = new PhDispatcher();
         $dispatcher->setControllerName('test');
         $dispatcher->setActionName('empty');
         $dispatcher->setParams(array());
         return $dispatcher;
     });
     $this->di->set('escaper', function () {
         return new PhEscaper();
     });
     if ($this->di instanceof \Phalcon\DiInterface) {
         $this->application = new PhApplication($this->di);
     }
 }
Пример #5
0
 /**
  * This method is called before a test is executed.
  */
 protected function setUp()
 {
     parent::setUp();
     // Set the dispatcher
     $this->di->setShared('dispatcher', function () {
         $dispatcher = new PhDispatcher();
         $dispatcher->setControllerName('test');
         $dispatcher->setActionName('empty');
         $dispatcher->setParams([]);
         return $dispatcher;
     });
     $this->di->set('escaper', function () {
         return new PhEscaper();
     });
     if ($this->di instanceof DiInterface) {
         $this->application = new PhApplication($this->di);
     }
 }
Пример #6
0
 /**
  * This action is executed before execute any action in the application
  */
 public function beforeDispatch(Event $event, Dispatcher $dispatcher)
 {
     $role = $this->getActiveRole();
     $allowed = $this->getAcl()->isAllowed($role, $dispatcher->getControllerName(), $dispatcher->getActionName());
     if ($allowed != Acl::ALLOW) {
         $this->flash->error("No Tienes acceso a este Modulo " . $dispatcher->getActionName() . " on " . $dispatcher->getModuleName() . " module");
         /*
         $dispatcher->forward(
             array(
                 'controller' => 'index',
                 'action'     => 'index'
             )
         );
         */
         $dispatcher->setActionName('nonexistaction');
         header('location:/401');
     }
 }
<?php

/**
 * Created by PhpStorm.
 * User: rcmonitor
 * Date: 07.07.15
 * Time: 15:46
 */
use Phalcon\Di;
use Phalcon\Events\Manager;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\Router;
use Phalcon\Version;
$di = new Di\FactoryDefault();
$oRouter = new Router(false);
$oRouter->setDI($di);
$oRouter->add('/:controller', array('controller' => 1, 'action' => 'index'));
$oEventManager = new Manager();
$oEventManager->attach('dispatch:beforeDispatch', function () {
    return false;
});
$oDispatcher = new Dispatcher();
$oDispatcher->setDI($di);
$oDispatcher->setEventsManager($oEventManager);
$oRouter->handle('/test');
$oDispatcher->setControllerName($oRouter->getControllerName());
$oDispatcher->setActionName($oRouter->getActionName());
$oDispatcher->dispatch();
echo $oDispatcher->getControllerClass() . PHP_EOL;
echo Version::get() . PHP_EOL;