Ejemplo n.º 1
0
<?php

use Phalcon\Mvc\Router\Group;
use Phalcon\Mvc\Router;
$router = new Router(false);
$router->setDefaults(['controller' => 'tests', 'action' => 'index']);
$router->removeExtraSlashes(true);
$prefix = '/' . VERSION . '/';
//tests
$tests = new Group(['controller' => 'tests']);
$tests->setPrefix($prefix . 'tests');
$tests->addGet('', ['action' => 'index']);
$tests->addGet('/{id:[0-9]+}', ['action' => 'view']);
$tests->addPost('/new', ['action' => 'new']);
$tests->addPut('/{id:[0-9]+}', ['action' => 'update']);
//task
$tasks = new Group(['controller' => 'task']);
$tasks->setPrefix($prefix . 'tasks');
$tasks->addGet('', ['action' => 'index']);
$tasks->addGet('/{id:[0-9]+}', ['action' => 'view']);
$tasks->addPost('/new', ['action' => 'new']);
$tasks->addPut('/{id:[0-9]+}', ['action' => 'update']);
//token
$token = new Group(['controller' => 'token']);
$token->setPrefix($prefix . 'token');
$token->add('', ['action' => 'index']);
//mount
$router->mount($token);
$router->mount($tests);
$router->mount($tasks);
return $router;
Ejemplo n.º 2
0
$frontend->add('/:controller/:int/{slug:[a-z\\-]+}', ['controller' => 1, 'id' => 2, 'slug' => 3, 'action' => 'view']);
$frontend->add('/posts/:int/{slug:[a-z\\-]+}', ['id' => 1, 'slug' => 2, 'action' => 'view']);
$frontend->add('/:controller[/]?', ['controller' => 1]);
$frontend->add('/blog/{id:[0-9]+}/{slug:[a-z\\-]+}', ['controller' => 'posts', 'action' => 'view']);
$frontend->add('/questions/{id:[0-9]+}/{slug:[a-z\\-]+}', ['controller' => 'posts', 'action' => 'view']);
$frontend->add('/questions/new', ['controller' => 'posts', 'action' => 'new']);
$frontend->add('/');
$router->mount($frontend);
/**
 * Define routes for each module
 */
$modules = ['oauth', 'backend'];
foreach ($modules as $module) {
    $group = new Group(['module' => $module]);
    $group->setPrefix('/' . $module);
    $group->add('/:controller/:action/:params', array('controller' => 1, 'action' => 2, 'params' => 3));
    $group->add('/:controller/:int', ['controller' => 1, 'id' => 2]);
    $group->add('/:controller[/]?', ['controller' => 1]);
    $frontend->add('/:controller/:int/{slug:[a-z\\-]+}', ['controller' => 1, 'id' => 2, 'slug' => 3, 'action' => 'view']);
    $group->add('[/]?', array());
    $router->mount($group);
}
$router->add('/backend', ['module' => 'backend', 'controller' => 'dashboard']);
$router->add('/oauth/github/access_token', ['module' => 'oauth', 'controller' => 'login', 'action' => 'tokenGithub']);
$router->add('/oauth/google/access_token', ['module' => 'oauth', 'controller' => 'login', 'action' => 'tokenGoogle']);
$router->add('/oauth/facebook/access_token', ['module' => 'oauth', 'controller' => 'login', 'action' => 'tokenFacebook']);
$router->add('/questions', ['module' => 'frontend', 'controller' => 'posts']);
/**
 * @link https://docs.phalconphp.com/en/latest/reference/routing.html#match-callbacks
 */
$router->add('/{router}', ['module' => 'frontend', 'controller' => 'router'])->beforeMatch(function ($uri, $route) {
Ejemplo n.º 3
0
$di->set('router', function () use($di, $config) {
    $modules = $di->get('modules');
    $router = new Router();
    $adminRouterGroup = new RouterGroup();
    // 管理类分组
    $adminRouterGroup->setPrefix($config->application->adminPrefix);
    $frontendRouterGroup = new RouterGroup();
    //前端显示类分组
    $frontendRouterGroup->setPrefix($config->application->frontendPrefix);
    //    $apiRouterGroup = new RouterGroup();        //api,service类分组
    //    $apiRouterGroup->setPrefix($config->application->apiPrefix);
    $controllerPath = $config->application->controllersDir;
    // 一个路由分组的默认地址 这个路由分组里放的是显示网站数据的应用,称之为前台
    $frontendRouterGroup->add('/', ['namespace' => 'Modules\\Frontend\\Controllers', 'module' => 'Frontend', 'controller' => 'index', 'action' => 'index']);
    // 一个路由分组的默认地址 这个路由分组里放的是管理网站数据的应用,称之为后台
    $adminRouterGroup->add('/', ['namespace' => 'Modules\\Backend\\Controllers', 'module' => 'Backend', 'controller' => 'index', 'action' => 'index']);
    foreach ($modules as $key => $val) {
        if (file_exists($controllerPath . $val . "/Router.php")) {
            require_once $controllerPath . $val . "/Router.php";
        }
    }
    $router->mount($frontendRouterGroup);
    $router->mount($adminRouterGroup);
    //    $router->mount($apiRouterGroup);
    return $router;
});
// 合并所有modules config数组到config对象
$di->set('config', function () use($config, $di) {
    $modules = $di->get('modules');
    $controllerPath = $config->application->controllersDir;
    foreach ($modules as $key => $val) {