項目名稱從「FantaCMS」修改爲爲「testyii」—————— 俗!
php
1,項目目錄結構分析
數組
2,Yii入口文件分析app
在Yii啓動項目時,傳遞了項目主配置文件數組,那麼Yii會在整個應用中綁定一個全局的Yii對象而且能夠經過以下方法來調用該對象:Yii::app()yii
Yii系統把配置文件中的數組值,經過鍵值對的形式綁定到了該對象上,例如在配置文件中咱們配置了:this
'name'=>'My Web Application',spa
那麼咱們在項目的任何一個地方經過該對象的屬性就能夠獲取到「name」的值,方法爲:component
Yii::app()->name;對象
3,Yii路由設置
繼承
同時應該知道:對於控制器名,Yii首先會檢測當前的控制器名是不是一個「模塊名」,若是是模塊名則先定位到模塊。路由
「模塊」會在後面搭建項目的時候解釋。
經過上面的路由訪問到的就是:SiteController.php類文件下的SiteController類中的actionIndex方法
控制器文件位於:protected/controllers 目錄下,也就是咱們的控制器文件存放目錄
注意Yii中控制器文件和動做方法名的書寫方式,控制器有統一的後綴」Controller「,動做方法也有統一的前綴」action「,同時要求動做方法名的命名規範符合」除第一個單詞外其它每一個單詞的首字母要大寫「
因爲Yii默認的控制器名爲:site
默認的動做名爲:index
所以上述經過指定控制器名動做名訪問的路徑和直接訪問:http://localhost/testyii/ 的效果是一致的
4,視圖調用
在動做方法中,調用:$this->render('index');
來爲對應的動做方法指定視圖文件,視圖文件位於:protected/views/site 目錄下
其中:site爲對應的控制器名文件夾,每一個控制器名在視圖中都應該具備一個惟一的文件夾名與其相對應
而後在動做方法中經過‘index’來指定顯示的具體視圖文件是site控制器下的指定的‘index.php’視圖文件
另外還須要注意:
調用視圖的方法有兩個:
$this->render ----> 會調用模板文件
和
$this->renderPartial -----> 不會調用模板文件
它們之間的區別,也如上所述。
5,視圖模板設置
打開SiteController.php文件,其中的代碼截圖以下:
咱們發現:Yii應用中,每一個控制器都要繼承自公共控制器「Controller」
而後打開「Controller」控制器文件:Controller.php,它位於:protected/components 目錄下
「Controller」控制器代碼截圖以下:
Yii經過:public $layout='//layouts/column1'; 來指定動做方法的公共模板文件
公共模板文件位於:protected/views/layouts 目錄下,以下圖:
如今咱們來建立咱們的模板文件:testlayout.php,代碼以下:
其中」<?php echo $content; ?>「爲Yii中規定的模板文件中的內容替換方法
而後,修改 」Controller「控制器中的模板文件爲:public $layout='//layouts/testlayout';
而後訪問:http://localhost/testyii/index.php?r=site/index 結果如圖:
而後咱們發現,模板文件已經變成咱們本身指定的了,而後假如你不須要視圖文件渲染模板文件,那麼你能夠在動做方法中調用視圖文件的時候使用:$this->renderPartial 方法
或者你整個項目都不須要調用模板文件,那麼你能夠在動做方法中調用視圖文件時所有用:$this->renderPartial
也或者將視圖模板文件設置爲」空「,例如:public $layout='';
下一節繼續:Yii的魔術師:gii,Yii模塊及模塊自定義