加载控制器及其方法:
根据route信息,获得当前控制器 | 初始化当前控制器,CController::init(),默认为空 | 执行当前控制器,CController::run() | |----> 创建action,为空则默认为index | 得到CInlineAction的实例 | 用父对象执行beforeControllerAction:默认是CWebApplication,直接返回TRUE | 执行action |----> 备份原来的action | 执行beforeAction() | runWithParams()----> 实际上是执行CInlineAction->runWithParams() | 在实例中,执行SiteController->actionIndex() | 渲染页面:render('index') | |<--------------------------| | 执行afterAction() | 恢复原来action | |<----------| | 用父对象执行afterControllerAction:默认是CWebApplication,为空 |<------------| 完成