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 のリリースがわかりません。
あなたが持っているかもしれないヒントをありがとう!