Asf_Router_AbstractRoute::addRoute

这是一个简易的路由配置入口, 针对 service, action 做路由重定向

备注: 请全部小写


Description

public function addRoute(string $name, array $data)

Parameters

name

需要匹配的service名称:action名称

备注: 这里需要认识两个特殊字符

data

$data = array('module' => '被替换的模块名称', 'service' => '被替换的service名称', 'action' => '被替换的action名称')

备注: data.module, data.service, data.action 是固定的名称

Return Values

设置成功返回 true, 设置失败返回 false

Examples

Example #1 匹配 指定service(index) & 所有action

如果 service_name 等于 index, 则重定向到新的 service (user) + action (top)

<?php
class Bootstrap
{
    public function _initOne($dispatcher)
    {
        $route = array(
            'service' => 'user',
            'action'  => 'top',
        );

        $dispatcher->getRouter()->getRoutes();
        $dispatcher->getRouter()->addRoute('index:*', $route);
    }
}

Example #2 匹配 指定service(news) & 所有action

如果 service_name 等于 news, 则重定向到新的 module (admin) + service (news) + action (list)

<?php
class Bootstrap
{
    public function _initOne($dispatcher)
    {
        $route_news = array(
            'module'  => 'admin',
            'service' => 'news',
            'action'  => 'list',
        );

        $dispatcher->getRouter()->getRoutes();
        $dispatcher->getRouter()->addRoute('news:*', $route_news);
    }
}

Example #3 匹配 指定service(cat) & 指定action(index)

如果 service_name 等于 cat, action_name 等于 index, 则重定向到新的 service (cat) + action (order)

<?php
class Bootstrap
{
    public function _initOne($dispatcher)
    {
        $route = array(
            'service' => 'cat',
            'action'  => 'order',
        );

        $dispatcher->getRouter()->getRoutes();
        $dispatcher->getRouter()->addRoute('cat:index', $route);
    }
}