私は Yii を初めて使用し、URL で API バージョンを管理するために parseUrl を実装しようとしています。/api/1.0/... をコントローラー apiV1.0 にリダイレクトしたいと思います。
Main.php (urlManager ルール):
...
array('class' => 'application.components.ApiVersion'),
...
ApiVersion.php:
<?php
class ApiVersion extends CBaseUrlRule
{
public $connectionID = 'db';
public function createUrl($manager,$route,$params,$ampersand)
{
if ($route==='car/index')
{
if (isset($params['manufacturer'], $params['model']))
return $params['manufacturer'] . '/' . $params['model'];
else if (isset($params['manufacturer']))
return $params['manufacturer'];
}
return false; // this rule does not apply
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo)
{
if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches))
$url = $match[1] . $match[2]; // BUILD YOUR URL (controllerName/actionName)
$this->redirect(array($url));
}
return false;
}
}
私はそれがどのように機能するかについて非常に迷っています。誰かが私を助けることができますか?