我正在编写 API 的新版本,并希望通过为每个版本设置不同的控制器集来支持旧版本。在 Lithium 中的默认“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}",
));
}
我花了大约半天的时间搜索谷歌和非常稀疏的锂文档。我不确定我们使用的是什么版本的 Lithium,因为我已经进入了这个预先存在的代码库。
感谢您提供的任何提示!