Path 更改Limition中的默认控制器路径

Path 更改Limition中的默认控制器路径,path,router,controllers,lithium,Path,Router,Controllers,Lithium,我正在编写一个新版本的API,并希望通过为每个版本提供不同的控制器集来支持遗留版本。在Limition中的默认“app\controllers”路径中,我希望有例如“v1”和“v2”路径 我曾尝试通过以下方式在路线本身内实现这一点: Router::connect('/{:version}/{:controller}/{:action}{:args}', array( 'controller'=> '\app\controllers\{:version}\{:contro

我正在编写一个新版本的API,并希望通过为每个版本提供不同的控制器集来支持遗留版本。在Limition中的默认“app\controllers”路径中,我希望有例如“v1”和“v2”路径

我曾尝试通过以下方式在路线本身内实现这一点:

 Router::connect('/{:version}/{:controller}/{:action}{:args}', array(
        'controller'=> '\app\controllers\{:version}\{:controller}Controller',
    ), array());
if( preg_match('/^\/(v[0-9\.]+)/', $_SERVER['REQUEST_URI'], $match) ) {
    Libraries::paths(array(
        'controllers' => "controllers\\".$match[1].'\\{:name}Controller',
        'models' => "models\\".$match[1]."\\{:name}",
    ));
}
然后,我尝试通过如下操作覆盖库引导模块中的路径:

 Router::connect('/{:version}/{:controller}/{:action}{:args}', array(
        'controller'=> '\app\controllers\{:version}\{:controller}Controller',
    ), array());
if( preg_match('/^\/(v[0-9\.]+)/', $_SERVER['REQUEST_URI'], $match) ) {
    Libraries::paths(array(
        'controllers' => "controllers\\".$match[1].'\\{:name}Controller',
        'models' => "models\\".$match[1]."\\{:name}",
    ));
}
我花了大约半天的时间在搜索谷歌和非常稀少的锂文档。我不确定我们使用的是什么版本的锂,因为我已经进入了这个预先存在的代码库


谢谢你给我的建议

在routes.php文件中,应使用

Dispatcher::config(array('rules' => array(
  'v1' => array('controller' => 'app\controllers\v1\{:controller}Controller')
)));
和一个匹配/v1/…的延续路由。。。请求

Router::connect('/v1/{:args}', array('v1' => true), array(
  'continue' => true, 'persist' => array('controller', 'v1')
));
如果需要,您可以轻松使用
:version
,而不是预定义的版本号