Example #1
0
<?php

use Phalcon\Mvc\Router;
$router = new Router();
//$router = new Router(false);
$router->removeExtraSlashes(true);
// 移除URL多余的斜杠
//$router->setUriSource(Router::URI_SOURCE_GET_URL);
$router->setDefaultController('index');
$router->setDefaultAction('index');
$router->setDefaultModule('frontend');
$router->setDefaultNamespace('Apps\\Frontend\\Controllers');
// APP API
$router->add('/appApi', ['module' => 'appApi', 'namespace' => 'Apps\\AppApi\\Controllers\\', 'controller' => 'index', 'action' => 'index']);
$router->add('/appApi' . '/:action', ['module' => 'appApi', 'namespace' => 'Apps\\AppApi\\Controllers\\', 'controller' => 'index', 'action' => 1]);
$defaultController = 'index';
$defaultAction = 'index';
$urlBase = ['/backend' => ['module' => 'backend', 'namespace' => 'Apps\\Backend\\Controllers\\'], '/manage' => ['module' => 'manage', 'namespace' => 'Apps\\Manage\\Controllers\\'], '/frontend' => ['module' => 'frontend', 'namespace' => 'Apps\\Frontend\\Controllers\\'], '/pay' => ['module' => 'pay', 'namespace' => 'Apps\\Pay\\Controllers\\']];
foreach ($urlBase as $k => $v) {
    $module = $v['module'];
    $namespace = $v['namespace'];
    $router->add($k . '/:params', ['module' => $module, 'namespace' => $namespace, 'controller' => $defaultController, 'action' => $defaultAction, 'params' => 1]);
    $router->add($k . '/:controller/:params', ['module' => $module, 'namespace' => $namespace, 'controller' => 1, 'action' => $defaultAction, 'params' => 2]);
    $router->add($k . '/:controller/:action/:params', ['module' => $module, 'namespace' => $namespace, 'controller' => 1, 'action' => 2, 'params' => 3]);
}
return $router;
Example #2
0
 public function diRouter()
 {
     $di = $this->getDI();
     $cachePrefix = $this->getAppName();
     $cacheFile = $this->getConfigPath() . "/_cache.{$cachePrefix}.router.php";
     if ($router = $this->readCache($cacheFile, true)) {
         return $router;
     }
     $moduleManager = $di->getModuleManager();
     $config = new Config();
     $moduleName = '';
     if ($moduleManager && ($modulesArray = $moduleManager->getModules())) {
         foreach ($modulesArray as $moduleName => $module) {
             //NOTICE: EvaEngine Load front-end router at last
             $config->merge(new Config($moduleManager->getModuleRoutesFrontend($moduleName)));
             $config->merge(new Config($moduleManager->getModuleRoutesBackend($moduleName)));
         }
     }
     //Disable default router
     $router = new Router(false);
     //Last extra slash
     $router->removeExtraSlashes(true);
     //Set last module as default module
     $router->setDefaultModule($moduleName);
     //NOTICE: Set a strange controller here to make router not match default index/index
     $router->setDefaultController('EvaEngineDefaultController');
     $config = $config->toArray();
     foreach ($config as $url => $route) {
         if (count($route) !== count($route, COUNT_RECURSIVE)) {
             if (isset($route['pattern']) && isset($route['paths'])) {
                 $method = isset($route['httpMethods']) ? $route['httpMethods'] : null;
                 $router->add($route['pattern'], $route['paths'], $method);
             } else {
                 throw new Exception\RuntimeException(sprintf('No route pattern and paths found by route %s', $url));
             }
         } else {
             $router->add($url, $route);
         }
     }
     if (!$di->getConfig()->debug) {
         $this->writeCache($cacheFile, $router, true);
     } else {
         //Dump merged routers for debug
         $this->writeCache($this->getConfigPath() . "/_debug.{$cachePrefix}.router.php", $router, true);
     }
     return $router;
 }
Example #3
0
<?php

use Phalcon\Mvc\Router;
/* ==================================================
 * ลงทะเบียน "เส้นทางเว็บแอพพลิเคชั่น" (Router)
 * Registering a router
 * ================================================== */
$config = $this->config;
// Read the configuration
$manager->set('router', function () use($config) {
    $router = new Router();
    $router->setDefaultModule($config->router->moduleDefault);
    $router->setDefaultController($config->router->controllerDefault);
    $router->setDefaultAction($config->router->actionDefault);
    $router->removeExtraSlashes(TRUE);
    $addModule = explode(',', $config->module->moduleLists);
    foreach ($addModule as $module) {
        $pathModule = APPLICATION_PATH . '/modules/' . $module . '/Router.php';
        $nameModule = ucfirst($module) . 'Router';
        if (file_exists($pathModule)) {
            include_once $pathModule;
            $router->mount(new $nameModule($config));
        }
    }
    return $router;
});
Example #4
0
 public function setDefaultController($controllerName)
 {
     return parent::setDefaultController($controllerName);
 }