Как программно вызвать контроллер?

// создаем контроллер, основываясь на нашем роуте
$p      = Yii::app()->createController('module/controller/index');
 
// берем функцию           
$result = $p[0]->someFunction($params);
 
// или экшен
$r      = $p[0]->actionIndex();

Если экшены вынесены в отдельный класс

class SiteController extends CController {
        public function actions(){
                return array(
                   'contact' => 'application.controllers.content.actioncontact',
                );
        }
}
 
$p = Yii::app()->createController('site/controller/contact');
$act = $p[0]->createAction('contact');
$act->run();
 
// или
$p = Yii::app()->createController('site/controller/contact');
$r = $p[0]->createAction('contact')->run();