1. 每個應用子產品都有獨立的配置檔案(位于子產品目錄的Conf/config.php),定義格式預設采用PHP數組定義
2. 為所有子產品定義公共的配置檔案,可以在公共子產品中定義(通常位于 Common/Conf/config.php)
3. 每個控制器定義一個控制器類; 控制器名+Controller.class.php (子產品名采用駝峰法并且首字母大寫);類名和檔案名一緻
4. 标準的URL通路格式:http://serverName/index.php/子產品/控制器/操作
5. ThinkPHP中的視圖主要就是指模闆檔案和模闆引擎
6. 模闆檔案都在子產品的View目錄下面,并且是以子產品下面的控制器名為目錄,然後是每個控制器的具體操作 作為模闆檔案
7. 預設的找模版規則:View/控制器名/操作名.html;(操作和模版對應關系)
要輸出視圖,必須在控制器方法中進行模闆渲染輸出操作,模闆輸出最常用的是使用display方法,$this->display();表示系統會按照預設規則自動定位模闆檔案
• 如果目前沒有啟用模闆主題則定位到:目前子產品/預設視圖目錄/目前控制器/目前操作.html ;
• 如果有啟用模闆主題則定位到:目前子產品/預設視圖目錄/目前主題/目前控制器/目前操作.html;
• 如果有更改TMPL_FILE_DEPR設定(假設 'TMPL_FILE_DEPR'=>'_')的話,則上面的自動定位規則變成: 目前子產品/預設視圖目錄/目前控制器_目前操作.html 和 目前子產品/預設視圖目錄/目前主題/目前控制器_目前操作.html。
8. 如果我們需要讀取資料庫中的資料,就需要在子產品配置檔案中添加資料庫連接配接資訊。
9. 模型名+Model.class.php (模型名的定義采用駝峰法并且首字母大寫)
10. 按照系統的規範來命名模型類的話,大多數情況下是可以自動對應資料表
模型類名字 === 除去表字首的資料表名稱,采用駝峰法命名,并且首字母大寫,然後加上Model
11. ThinkPHP在沒有找到對應操作方法的情況下,會檢查是否存在對應的模闆檔案,由于我們有對應的add模闆檔案,是以控制器就直接渲染該模闆檔案輸出了。
12. 使用D函數執行個體化模型類,一般需要對應一個模型類
13. 模版表達式:子產品@主題/控制器/操作 預設都是在view檔案夾下
14. 在模闆檔案中輸出變量,内置模闆的話,就可以這樣輸出: {$name}
使用PHP本身作為模闆引擎的話 ,就可以直接在模闆檔案裡面輸出了: <?php echo $name.'['.$email.''.$phone.']'; ?>
15. 模版中使用函數:需要采用 {:U('參數1', '參數2'…)} 的方式
16. Common子產品和普通子產品一樣,可以添加控制器、模型和視圖,并且支援多層,但不能直接通路,隻能繼承,其中模型層可以作為公用模型,在D方法執行個體化中調用。D函數執行個體化的時候 才能自動判斷 目前子產品模型類不存在的時候 執行個體化公共子產品中的同名模型,自己執行個體化肯定做不到這點了。
回複 @thinkphp : 你的意思是common子產品裡的控制器、模型和視圖有兩個作用:1目前子產品裡的php檔案不存在的時候,自動去找公共子產品中的同名檔案 2.其他子產品裡的控制器、模型和視圖 繼承公共子產品裡的控制器、模型和視圖, 總結的對嗎?
如果其他子產品直接使用common子產品,需要加子產品名common嗎?
thinkphp 回複:
Common子產品是一個特殊的子產品,是應用的公共子產品,通路所有的子產品之前都會首先加載公共子產品下面的配置檔案(Conf/config.php)和公共函數檔案(Common/function.php)。但Common子產品本身不能通過URL直接通路,公共子產品的其他檔案則可以被其他子產品繼承或者調用