/** * @dataProvider routesProvider * * @param $arRoute * @param $strUri * @param $strClassName */ public function testRoutes($arRoute, $strUri, $strClassName) { $this->router->add($arRoute['route'], $arRoute['parameters'])->setName($arRoute['name']); $this->router->handle($strUri); $boolMatched = $this->router->wasMatched(); $this->assertTrue($boolMatched, 'failed to match ' . $strUri); $strRouteName = $this->router->getMatchedRoute()->getName(); $this->assertEquals($arRoute['name'], $strRouteName, 'matched wrong route'); $this->setUpDispatcher(); $this->dispatcher->dispatch(); $strControllerClassName = $this->dispatcher->getControllerClass(); $this->assertEquals($strClassName, $strControllerClassName, 'wrong controller class name'); }
private function pathFinder($strMedia, $intMajorVersion, $intMinorVersion) { $strReturn = ''; $oLogger = $this->_di->getFileLogger(); // $oChecker = new Checker(); $strBaseDir = __DIR__ . DIRECTORY_SEPARATOR . $strMedia . DIRECTORY_SEPARATOR . 'v' . $intMajorVersion . '_'; $intMinorVersion = (int) $intMinorVersion; for ($i = $intMinorVersion; $i >= 0; $i--) { $strDir = $strBaseDir . $intMinorVersion . DIRECTORY_SEPARATOR . 'controllers'; $oChecker = new Checker($strDir, $this->dispatcher->getControllerClass()); if ($oChecker->methodExists($this->dispatcher->getActiveMethod())) { $oLogger->debug(__CLASS__ . '->' . __FUNCTION__ . ':: ' . $this->dispatcher->getControllerClass() . '->' . $this->dispatcher->getActiveMethod() . ' lays in ' . $strDir); $strReturn = $strDir; break; } else { $oLogger->debug(__CLASS__ . '->' . __FUNCTION__ . ':: ' . $this->dispatcher->getControllerClass() . '->' . $this->dispatcher->getActiveMethod() . ' not found in ' . $strDir); } // if($strTokens = $oChecker->classExists($strDir, $this->dispatcher->getControllerClass())){ // // $oLogger->debug('tokens: ' . $strTokens); // } } return $strReturn; }
<?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;
public function handle(\Phalcon\Events\Event $oEvent, \Phalcon\Mvc\Dispatcher $oDispatcher) { $oLogger = $this->di->get('fileLogger'); $oLogger->info($oEvent->getType() . ' happened in ' . $oDispatcher->getControllerClass() . '::' . $oDispatcher->getActionName()); }