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}"; })); }
/** * 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(); }); }
/** * 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); } }
/** * 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); } }
/** * 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;