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);
 }
 public function beforeDispatchLoop($event, Dispatcher $dispatcher)
 {
     $resolver = di('resolver');
     $dispatcher->setControllerName($resolver->run('dispatch:controller', function () {
         $router = di('router');
         $moduleName = $router->getModuleName();
         $ctlName = ucfirst($router->getControllerName());
         return "\\App\\Modules\\{$moduleName}\\Controllers\\{$ctlName}";
     }));
 }
Exemplo n.º 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();
     });
 }
Exemplo n.º 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);
     }
 }
Exemplo n.º 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);
     }
 }
Exemplo n.º 6
0
 /**
  * Initializes dispatcher
  */
 public function register()
 {
     $di = $this->getDi();
     $eventsManager = $this->getEventsManager();
     $config = $this->_config;
     $defaultModuleDir = $this->_module->getDefaultModuleDirectory();
     $di->set('defualtModuleDir', function () use($defaultModuleDir) {
         return $defaultModuleDir;
     });
     $moduleDirectory = $this->_module->getModuleDirectory();
     $di->set('moduleDirectory', function () use($moduleDirectory) {
         return $moduleDirectory;
     });
     $di->set('dispatcher', function () use($di, $eventsManager, $config) {
         // Create dispatcher
         $dispatcher = new MvcDispatcher();
         //Attach a listener
         $eventsManager->attach("dispatch:beforeException", function ($event, \Phalcon\Mvc\Dispatcher $dispatcher, $exception) use($di, $config) {
             if ($config->application->debug && $di->has('logger')) {
                 $logger = $di->get('logger');
                 $logger->error($exception->getMessage());
             }
             //Handle 404 exceptions
             if ($exception instanceof DispatchException) {
                 $dispatcher->forward(['controller' => 'error', 'action' => 'show404']);
                 return false;
             }
             if ($di->get('request')->isAjax() == true) {
             }
             //Handle other exceptions
             $dispatcher->forward(['controller' => 'error', 'action' => 'show503']);
             return false;
         });
         $eventsManager->attach("dispatch:beforeDispatchLoop", function ($event, \Phalcon\Mvc\Dispatcher $dispatcher) {
             $dispatcher->setControllerName(\Phalcon\Text::lower($dispatcher->getControllerName()));
         });
         $dispatcher->setEventsManager($eventsManager);
         return $dispatcher;
     });
 }
<?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;