Yii framework - Simple Workflow

參考上圖,簡化一個最簡單的Yii workflow

index.php

整個網站的進入點,主要就是

  • require YiiBase核心
  • $app = Yii::createWebApplication($config),建立一個CWebApplication物件
  • $app->run()啟動它

Application

這裡主要是run()中的processRequest()

  • $route = $this->getUrlManager()->parseUrl($this->getRequest());,建立CHttpRequest物件(request),建立CUrlManager物件(urlManager),並且將request傳入urlManager的parseUrl()去處理,拿到controllerID/actionID
  • $this->runController($route);,根據傳入的route去建立及啟動對應的controller和action

Controller、Filters、Actions

根據對應的controllerID/actionID分別進入各controller中後

  • 先根據filters()中的return值來呼叫對應的過濾器做存取權限、參數驗證…等,可使用+,-來設定需要使用filter的action
  • filter都通過之後啟動action,會先進入符合actionID的方法,如果沒有會再actions()中找外部的action

Views

在action中render()要輸出的內容,這時候render會引入layout,並將輸出內容放入$content變數中,包含在layout中echo

推薦文章