Yii入門教程之目錄結構、入口文件及路由設置
項目名稱從“FantaCMS”修改成為“testyii”—————— 俗!
1,項目目錄結構分析
2,Yii入口文件分析
在Yii啟動項目時,傳遞了項目主配置文件數(shù)組,那么Yii會在整個應用中綁定一個全局的Yii對象并且可以通過如下方法來調(diào)用該對象:Yii::app()
Yii系統(tǒng)把配置文件中的數(shù)組值,通過鍵值對的形式綁定到了該對象上,例如在配置文件中我們配置了:
'name'=>'My Web Application',
那么我們在項目的任何一個地方通過該對象的屬性就可以獲取到“name”的值,方法為:
Yii::app()->name;
3,Yii路由設置
同時應該知道:對于控制器名,Yii首先會檢測當前的控制器名是否是一個“模塊名”,如果是模塊名則先定位到模塊。
“模塊”會在后面搭建項目的時候解釋。
通過上面的路由訪問到的就是:SiteController.php類文件下的SiteController類中的actionIndex方法
控制器文件位于:protected/controllers 目錄下,也就是我們的控制器文件存放目錄
注意Yii中控制器文件和動作方法名的書寫方式,控制器有統(tǒng)一的后綴”Controller“,動作方法也有統(tǒng)一的前綴”action“,同時要求動作方法名的命名規(guī)范符合”除第一個單詞外其它每個單詞的首字母要大寫“
由于Yii默認的控制器名為:site
默認的動作名為:index
因此上述通過指定控制器名動作名訪問的路徑和直接訪問:http://localhost/testyii/ 的效果是一致的
4,視圖調(diào)用
在動作方法中,調(diào)用:$this->render('index');
來為對應的動作方法指定視圖文件,視圖文件位于:protected/views/site 目錄下
其中:site為對應的控制器名文件夾,每個控制器名在視圖中都應該具有一個唯一的文件夾名與其相對應
然后在動作方法中通過‘index'來指定顯示的具體視圖文件是site控制器下的指定的‘index.php'視圖文件
另外還需要注意:
調(diào)用視圖的方法有兩個:
$this->render ----> 會調(diào)用模板文件
和
$this->renderPartial -----> 不會調(diào)用模板文件
它們之間的區(qū)別,也如上所述。
5,視圖模板設置
打開SiteController.php文件,其中的代碼截圖如下:
我們發(fā)現(xiàn):Yii應用中,每個控制器都要繼承自公共控制器“Controller”
然后打開“Controller”控制器文件:Controller.php,它位于:protected/components 目錄下
“Controller”控制器代碼截圖如下:
Yii通過:public $layout='//layouts/column1'; 來指定動作方法的公共模板文件
公共模板文件位于:protected/views/layouts 目錄下,如下圖:
現(xiàn)在我們來創(chuàng)建我們的模板文件:testlayout.php,代碼如下:
其中”<?php echo $content; ?>“為Yii中規(guī)定的模板文件中的內(nèi)容替換方法
然后,修改 ”Controller“控制器中的模板文件為:public $layout='//layouts/testlayout';
然后訪問:http://localhost/testyii/index.php?r=site/index 結果如圖:
然后我們發(fā)現(xiàn),模板文件已經(jīng)變成我們自己指定的了,然后假如你不需要視圖文件渲染模板文件,那么你可以在動作方法中調(diào)用視圖文件的時候使用:$this->renderPartial 方法
或者你整個項目都不需要調(diào)用模板文件,那么你可以在動作方法中調(diào)用視圖文件時全部用:$this->renderPartial
也或者將視圖模板文件設置為”空“,例如:public $layout='';
下一節(jié)繼續(xù):Yii的魔術師:gii,Yii模塊及模塊自定義
相關文章
PHP實現(xiàn)加密文本文件并限制特定頁面的存取的效果
本篇文章主要介紹了PHP實現(xiàn)加密文本文件并限制特定頁面的存取,可以限制用戶對某些頁面的存取,有需要的可以了解一下。2016-10-10tp框架(thinkPHP)實現(xiàn)三次登陸密碼錯誤之后鎖定賬號功能示例
這篇文章主要介紹了tp框架(thinkPHP)實現(xiàn)三次登陸密碼錯誤之后鎖定賬號功能,結合實例形式分析了基于thinkPHP登陸判斷、標志位運算等操作實現(xiàn)密碼賬號鎖定功能,需要的朋友可以參考下2018-05-05PHP array_key_exists檢查鍵名或索引是否存在于數(shù)組中的實現(xiàn)方法
下面小編就為大家?guī)硪黄狿HP array_key_exists檢查鍵名或索引是否存在于數(shù)組中的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06淺析PHP反序列化中過濾函數(shù)使用不當導致的對象注入問題
這篇文章主要介紹了PHP反序列化中過濾函數(shù)使用不當導致的對象注入問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02