посмотрите в reqeuest.php на строке 622:
// These are accessible as public vars and can be overloaded
unset($params['controller'], $params['action'], $params['directory']);
// Params cannot be changed once matched
$this->_params = $params;
, поэтому строка 695 не может вернуть controller
:
public function param($key = NULL, $default = NULL)
{
return $this->_params[$key];
}
это то, как вы получаете контроллер $controller = Request::instance()->controller;
или $controller = $this->request->controller;
, если вы внутри контроллера