UNIX艺术

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

加载控制器及其方法:

根据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,为空
       |<------------|
     完成
posted on 2013-02-17 10:49  jinhuawang76  阅读(194)  评论(0编辑  收藏  举报