コード例 #1
0
 /**
  * @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');
 }
コード例 #2
0
 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;
 }
コード例 #3
0
<?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;
コード例 #4
0
 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());
 }