Пока придумал такое решение. Создал один контроллер Widget, и через него запускаю метод виджета.
К примеру ajax запрос будет уходить на www.site.ru/widget/index?widget=rating&method=recalc Обрабатывать будет его метод ajaxRecalc виджета Rating
class WidgetController extends Controller{
public function actionIndex($widget, $method){
Yii::import('application.extensions.'.$widget.'.'.$widget);
$obj = new $widget();
$method = 'ajax'.$method;
if(!method_exists($obj, $method)){
throw new CHttpException(500);
}
$obj->$method();
}
public function filterInit($filterChain){
if(!Is::ajax()){
throw new CHttpException(500);
}
$filterChain->run();
}
public function filters(){
return array('init');
}
}