Esempio n. 1
0
use Phalcon\Mvc\Router;
use Phalcon\Mvc\Router\Annotations;
use Phalcon\Mvc\Url as UrlResolver;
use Phalcon\DI\FactoryDefault;
use Phalcon\Session\Adapter\Files as SessionAdapter;
/**
 * The FactoryDefault Dependency Injector automatically registers the right services to provide a full stack framework
 */
$di = new FactoryDefault();
/**
 * Registering a router
 */
$di['router'] = function () use(&$di) {
    $di['logger']->log('Init global router service ');
    $router = new Annotations(false);
    $router->setDefaultModule('admin');
    // TODO Add specific route setting here
    // ARCH DO NOT REMOVE THIS LINE
    $router->addModuleResource('web', 'Wechat2\\Web\\Controllers\\Question', '/web/question');
    $router->addModuleResource('web', 'Wechat2\\Web\\Controllers\\User', '/web/user');
    $router->addModuleResource('wechat', 'Wechat2\\Wechat\\Controllers\\Server', '/wechat/server');
    $router->addModuleResource('admin', 'Wechat2\\Admin\\Controllers\\Index', '/admin/index');
    $router->addModuleResource('web', 'Wechat2\\Web\\Controllers\\Index', '/web/index');
    $router->addModuleResource('wechat', 'Wechat2\\Wechat\\Controllers\\Index', '/wechat/index');
    $router->addModuleResource('mobile', 'Wechat2\\Mobile\\Controllers\\Index', '/mobile/index');
    return $router;
};
/**
 * The URL component is used to generate all kinds of URLs in the application
 */
$di['url'] = function () use(&$di) {
Esempio n. 2
0
 /**
  * Init router.
  *
  * @param DI     $di     Dependency Injection.
  * @param Config $config Config object.
  *
  * @return Router
  */
 protected function _initRouter($di, $config)
 {
     $cacheData = $di->get('cacheData');
     $router = $cacheData->get(EnSystem::CACHE_KEY_ROUTER_DATA);
     if ($router == null) {
         $saveToCache = $router === null;
         // Load all controllers of all modules for routing system.
         $modules = $di->get('registry')->modules;
         // Use the annotations router.
         $router = new PhRouterAnnotations(false);
         $router->setDefaultModule(Application::SYSTEM_DEFAULT_MODULE);
         $router->setDefaultNamespace(ucfirst(Application::SYSTEM_DEFAULT_MODULE) . '\\Controller');
         $router->setDefaultController('Index');
         $router->setDefaultAction('index');
         /**
          * Load all route from router file
          */
         foreach ($modules as $module) {
             $moduleName = ucfirst($module);
             // Get all file names.
             $moduleDir = opendir($di->get('registry')->directories->modules . $moduleName . '/Controller');
             while ($file = readdir($moduleDir)) {
                 if ($file == "." || $file == ".." || strpos($file, 'Controller.php') === false) {
                     continue;
                 }
                 $controller = $moduleName . '\\Controller\\' . str_replace('Controller.php', '', $file);
                 $router->addModuleResource(strtolower($module), $controller);
             }
             closedir($moduleDir);
         }
         if ($saveToCache) {
             $cacheData->save(EnSystem::CACHE_KEY_ROUTER_DATA, $router, 2592000);
             // 30 days cache
         }
     }
     $router->removeExtraSlashes(true);
     $di->set('router', $router);
     return $router;
 }
 /**
  * Init router.
  *
  * @param DI     $di     Dependency Injection.
  * @param Config $config Config object.
  *
  * @return Router
  */
 protected function _initRouter($di, $config)
 {
     $defaultModuleName = ucfirst(Application::SYSTEM_DEFAULT_MODULE);
     // Check installation.
     if (!$config->installed) {
         $router = new RouterAnnotations(false);
         $router->setDefaultModule(Application::SYSTEM_DEFAULT_MODULE);
         $router->setDefaultNamespace($defaultModuleName . '\\Controller');
         $router->setDefaultController("Install");
         $router->setDefaultAction("index");
         $router->addModuleResource(Application::SYSTEM_DEFAULT_MODULE, $defaultModuleName . '\\Controller\\Install');
         $di->set('installationRequired', true);
         $di->set('router', $router);
         return;
     }
     $cacheData = $di->get('cacheData');
     $router = $cacheData->get(System::CACHE_KEY_ROUTER_DATA);
     if ($config->application->debug || $router === null) {
         $saveToCache = $router === null;
         // Load all controllers of all modules for routing system.
         $modules = $di->get('registry')->modules;
         // Use the annotations router.
         $router = new RouterAnnotations(true);
         $router->setDefaultModule(Application::SYSTEM_DEFAULT_MODULE);
         $router->setDefaultNamespace(ucfirst(Application::SYSTEM_DEFAULT_MODULE) . '\\Controller');
         $router->setDefaultController("Index");
         $router->setDefaultAction("index");
         // Read the annotations from controllers.
         foreach ($modules as $module) {
             $moduleName = ucfirst($module);
             // Get all file names.
             $files = scandir($di->get('registry')->directories->modules . $moduleName . '/Controller');
             // Iterate files.
             foreach ($files as $file) {
                 if ($file == "." || $file == ".." || strpos($file, 'Controller.php') === false) {
                     continue;
                 }
                 $controller = $moduleName . '\\Controller\\' . str_replace('Controller.php', '', $file);
                 $router->addModuleResource(strtolower($module), $controller);
             }
         }
         if ($saveToCache) {
             $cacheData->save(System::CACHE_KEY_ROUTER_DATA, $router, 2592000);
             // 30 days cache
         }
     }
     $di->set('router', $router);
     return $router;
 }