almost 4 years ago

相關 class

CWebApplication

重點 method
public function createController($route,$owner=null)


CController

重點 method
public function __construct($id,$module=null)
$id 是 controller 名稱,但是不加 Controller 的 postfix

public function resolveViewFile($viewName,$viewPath,$basePath,$moduleViewPath=null)
$viewPath 這個參數就是在組 view 檔案的路徑


奇怪的點

  1. CWebApplication 的 createController 在找 controller 檔案時,名稱字首為 upcase,其他為 downcase,加上 Controller 後綴,用這樣的規則找檔案
  2. CController 的 resolveViewFile 找 view 的路徑時的規則卻不太一樣,當 controller 名稱為 CamelCase 時,會把名稱的第一個大寫字轉成 downcase,這點還需要在花點時間研究一下...

舉例:
有支 controller 叫 AnalyticsReportController
那 Yii 尋找 controller 的規則就是 AnalyticsreportController.php
尋找 view 的對應路徑就是用 protected/views/analyticsreport

← java 簡易爬 xml (使用dom) Yii create component →