コード例 #1
0
 private static function cgiRegister()
 {
     $di = get_app_di();
     $config = self::getConfig();
     self::registCommonService($di, $config);
     $di->setShared('router', function () {
         $router = new \Phalcon\Mvc\Router();
         $router->removeExtraSlashes(true);
         $router->add('/:controller/:action/:params', array('controller' => 1, 'action' => 2, 'params' => 3));
         return $router;
     });
     $di->setShared('dispatcher', function () {
         $eventsManager = new \Phalcon\Events\Manager();
         $eventsManager->attach('dispatch:beforeException', new NotFoundPlugin());
         $dispatcher = new \Phalcon\Mvc\Dispatcher();
         $dispatcher->setEventsManager($eventsManager);
         $dispatcher->setDefaultNamespace("App\\Controllers\\");
         return $dispatcher;
     });
     $di->setShared('view', function () use($config) {
         $view = new \Phalcon\Mvc\View();
         $view->setViewsDir($config->view->templatePath);
         $view->registerEngines(array('.html' => function ($view, $di) {
             $config = $di->get('config');
             $compiledPath = $config->view->compiledPath;
             if (!file_exists($compiledPath)) {
                 mkdir($compiledPath, 0744, true);
             }
             $volt = new \Phalcon\Mvc\View\Engine\Volt($view, $di);
             $volt->setOptions(array('compiledPath' => $compiledPath, 'compiledExtension' => $config->view->compiledExtension, 'compileAlways' => isset($config->view->compileAlways) ?: false));
             $compiler = $volt->getCompiler();
             $compiler->addExtension(new VoltExtension());
             $autoEscape = isset($config->view->autoEscape) ?: true;
             ClassUtil::modifyPrivateProperties($compiler, array('_autoescape' => $autoEscape));
             return $volt;
         }));
         return $view;
     });
     $di->setShared('elements', function () {
         return new ElementsPlugin();
     });
 }
コード例 #2
0
 */
$di->setShared('config', $config);
/**
 * Registering a dispatcher
 */
$di->set('dispatcher', function () {
    $dispatcher = new \Phalcon\Mvc\Dispatcher();
    $dispatcher->setDefaultNamespace('Tools\\Controllers');
    return $dispatcher;
});
/**
 * Register routers
 */
$di->setShared('router', function () use($config) {
    $router = new \Phalcon\Mvc\Router();
    $router->removeExtraSlashes(true);
    $router->setDefaults(array('namespace' => 'Tools\\Controllers', 'controller' => 'index', 'action' => 'index'));
    $router->add('/:controller/:action/:params', array('namespace' => 'Tools\\Controllers', 'controller' => 1, 'action' => 2, 'params' => 3));
    return $router;
});
/**
 *  Register assets that will be loaded in every page
 */
$di->setShared('assets', function () {
    $assets = new \Phalcon\Assets\Manager();
    $assets->collection('header-js')->addJs('js/jquery-1.11.3.min.js')->addJs('js/jquery-ui.min.js')->addJs('js/bootstrap.min.js')->addJs('js/mg.js');
    $assets->collection('header-css')->addCss('css/jquery-ui.min.css')->addCss('css/bootstrap.min.css')->addCss('css/style.css');
    return $assets;
});
/**
 * Register the flash service with custom CSS classes
コード例 #3
0
ファイル: RouterMvcTest.php プロジェクト: noobiwan/cphalcon
 public function testExtraSlashes()
 {
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router();
     $router->removeExtraSlashes(true);
     $routes = array('/index/' => array('controller' => 'index', 'action' => ''), '/session/start/' => array('controller' => 'session', 'action' => 'start'), '/users/edit/100/' => array('controller' => 'users', 'action' => 'edit'));
     foreach ($routes as $route => $paths) {
         $router->handle($route);
         $this->assertTrue($router->wasMatched());
         $this->assertEquals($paths['controller'], $router->getControllerName());
         $this->assertEquals($paths['action'], $router->getActionName());
     }
 }
コード例 #4
0
ファイル: routes.php プロジェクト: sdgdsffdsfff/Pari
<?php

// 如果不使用默认的路由规则,请传入参数false
// 此时必需完全匹配路由表,否则调用默认的index/index
$router = new Phalcon\Mvc\Router();
// 如果URL以/结尾,删除这个/
$router->removeExtraSlashes(false);
$router->add('/', ['controller' => 'home', 'action' => 'index']);
// Not Found Paths
$router->notFound(['controller' => 'index', 'action' => 'show404']);
return $router;
コード例 #5
0
<?php

$router = new Phalcon\Mvc\Router(true);
$router->setDefaultModule("frontend");
$router->removeExtraSlashes(TRUE);
$router->add('/:controller/:action[/]{0,1}', array('module' => 'frontend', 'controller' => 1, 'action' => 2, 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/{language:[a-z]{2}}/:controller[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => "index", 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/{language:[a-z]{2}}/:controller/:action[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => 3, 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/{language:[a-z]{2}}/:controller/:action/:int[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => 3, 'uid' => 4, 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/', array('controller' => 'index', 'action' => 'index', 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/session/index/', array('controller' => 'session', 'action' => 'index', 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/session/start[/]{0,1}', array('controller' => 'session', 'action' => 'start', 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/session/logout[/]{0,1}', array('controller' => 'session', 'action' => 'logout', 'module' => 'frontend', 'namespace' => 'reportingtool\\Modules\\Modules\\Frontend\\Controllers'));
$router->add('/backend/{language:[a-z]{2}}/:controller[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => "index", 'module' => 'backend', 'namespace' => 'reportingtool\\Modules\\Modules\\Backend\\Controllers'));
$router->add('/backend/{language:[a-z]{2}}/:controller/:action[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => 3, 'module' => 'backend', 'namespace' => 'reportingtool\\Modules\\Modules\\Backend\\Controllers'));
$router->add('/backend/{language:[a-z]{2}}/:controller/:action/:int[/]{0,1}', array('language' => 1, 'controller' => 2, 'action' => 3, 'uid' => 4, 'module' => 'backend', 'namespace' => 'reportingtool\\Modules\\Modules\\Backend\\Controllers'));
$router->add('/backend', array('controller' => 'index', 'action' => 'index', 'module' => 'backend', 'namespace' => 'reportingtool\\Modules\\Modules\\Backend\\Controllers'));
$router->handle();
return $router;
コード例 #6
0
ファイル: Config.php プロジェクト: aciden/generator
 public function setRoute()
 {
     $this->set('router', function () {
         $router = new \Phalcon\Mvc\Router();
         $router->removeExtraSlashes(true);
         //
         //$router->add('/text/{action}/{idSection}', ['controller' => 'text']);
         //
         //$router->add('/append/{action}/{idSection}/?{idArticle}', ['controller' => 'append']);
         return $router;
     });
 }
コード例 #7
0
ファイル: app.php プロジェクト: fenghuilee/writepress
 /**
  * This methods registers the services to be used by the application
  */
 protected function _registerServices()
 {
     $di = new \Phalcon\DI\FactoryDefault();
     // Registering a Config shared-service
     $di->setShared('config', function () {
         $config['main'] = (include ROOT_DIR . "/config/main.php");
         $config['db'] = (include ROOT_DIR . "/config/db.php");
         $config['router'] = (include ROOT_DIR . "/config/router.php");
         return new \Phalcon\Config($config);
     });
     $config = $di->get('config');
     // Change FactoryDefault default Router service
     $di->getService('router')->setDefinition(function () use($config) {
         $router = new \Phalcon\Mvc\Router();
         //Setup routes from /config/router.php
         foreach ($config->router->toArray() as $key => $value) {
             $router->add($key, $value);
         }
         // Mount each module routers
         $router->mount(new \App\Frontend\Router());
         $router->mount(new \App\Backend\Router());
         // URI_SOURCE_SERVER_REQUEST_URI
         $router->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI);
         // Remove trailing slashes automatically
         $router->removeExtraSlashes(true);
         // Setting a specific default using an array
         // DefaultModule
         // DefaultNamespace
         // DefaultController
         // DefaultAction
         $router->setDefaults(array('modul' => 'frontend', 'namespace' => 'App\\Frontend\\Controllers\\', 'controller' => 'index', 'action' => 'index'));
         // Set 404 paths
         $router->notFound(["controller" => "error", "action" => "error404"]);
         return $router;
     });
     // Registering a View shared-service
     $di->setShared('view', function () {
         return new \Phalcon\Mvc\View();
     });
     // Registering a Mysql shared-service
     $di->setShared('mysql', function () use($config) {
         return new \Phalcon\Db\Adapter\Pdo\Mysql($config->db->mysql->toArray());
     });
     // Registering a Db shared-service
     $di->setShared('db', function () use($di) {
         return $di->get('mysql');
     });
     // Registering a Url shared-service
     $di->setShared('url', function () {
         $url = new \Phalcon\Mvc\Url();
         $url->setBaseUri('/');
         return $url;
     });
     // Start the Session service
     $di->get('session')->start();
     // Setup the Crypt service
     $di->get('crypt')->setMode(MCRYPT_MODE_CFB)->setKey($config->main->crypt_key);
     // Setup the Security service
     $di->get('security')->setWorkFactor(12);
     // Registering a custom authentication shared-service
     $di->setShared('auth', function () {
         return new \App\Common\Libs\Auth();
     });
     $this->setDI($di);
 }