Yii入門教程之目錄結(jié)構(gòu)、入口文件及路由設(shè)置
項(xiàng)目名稱從“FantaCMS”修改成為“testyii”—————— 俗!
1,項(xiàng)目目錄結(jié)構(gòu)分析


2,Yii入口文件分析

在Yii啟動(dòng)項(xiàng)目時(shí),傳遞了項(xiàng)目主配置文件數(shù)組,那么Yii會(huì)在整個(gè)應(yīng)用中綁定一個(gè)全局的Yii對(duì)象并且可以通過如下方法來調(diào)用該對(duì)象:Yii::app()
Yii系統(tǒng)把配置文件中的數(shù)組值,通過鍵值對(duì)的形式綁定到了該對(duì)象上,例如在配置文件中我們配置了:
'name'=>'My Web Application',
那么我們?cè)陧?xiàng)目的任何一個(gè)地方通過該對(duì)象的屬性就可以獲取到“name”的值,方法為:
Yii::app()->name;
3,Yii路由設(shè)置

同時(shí)應(yīng)該知道:對(duì)于控制器名,Yii首先會(huì)檢測(cè)當(dāng)前的控制器名是否是一個(gè)“模塊名”,如果是模塊名則先定位到模塊。
“模塊”會(huì)在后面搭建項(xiàng)目的時(shí)候解釋。
通過上面的路由訪問到的就是:SiteController.php類文件下的SiteController類中的actionIndex方法
控制器文件位于:protected/controllers 目錄下,也就是我們的控制器文件存放目錄
注意Yii中控制器文件和動(dòng)作方法名的書寫方式,控制器有統(tǒng)一的后綴”Controller“,動(dòng)作方法也有統(tǒng)一的前綴”action“,同時(shí)要求動(dòng)作方法名的命名規(guī)范符合”除第一個(gè)單詞外其它每個(gè)單詞的首字母要大寫“
由于Yii默認(rèn)的控制器名為:site
默認(rèn)的動(dòng)作名為:index
因此上述通過指定控制器名動(dòng)作名訪問的路徑和直接訪問:http://localhost/testyii/ 的效果是一致的
4,視圖調(diào)用
在動(dòng)作方法中,調(diào)用:$this->render('index');
來為對(duì)應(yīng)的動(dòng)作方法指定視圖文件,視圖文件位于:protected/views/site 目錄下
其中:site為對(duì)應(yīng)的控制器名文件夾,每個(gè)控制器名在視圖中都應(yīng)該具有一個(gè)唯一的文件夾名與其相對(duì)應(yīng)
然后在動(dòng)作方法中通過‘index'來指定顯示的具體視圖文件是site控制器下的指定的‘index.php'視圖文件
另外還需要注意:
調(diào)用視圖的方法有兩個(gè):
$this->render ----> 會(huì)調(diào)用模板文件
和
$this->renderPartial -----> 不會(huì)調(diào)用模板文件
它們之間的區(qū)別,也如上所述。
5,視圖模板設(shè)置
打開SiteController.php文件,其中的代碼截圖如下:

我們發(fā)現(xiàn):Yii應(yīng)用中,每個(gè)控制器都要繼承自公共控制器“Controller”
然后打開“Controller”控制器文件:Controller.php,它位于:protected/components 目錄下
“Controller”控制器代碼截圖如下:

Yii通過:public $layout='//layouts/column1'; 來指定動(dòng)作方法的公共模板文件
公共模板文件位于: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 結(jié)果如圖:

然后我們發(fā)現(xiàn),模板文件已經(jīng)變成我們自己指定的了,然后假如你不需要視圖文件渲染模板文件,那么你可以在動(dòng)作方法中調(diào)用視圖文件的時(shí)候使用:$this->renderPartial 方法
或者你整個(gè)項(xiàng)目都不需要調(diào)用模板文件,那么你可以在動(dòng)作方法中調(diào)用視圖文件時(shí)全部用:$this->renderPartial
也或者將視圖模板文件設(shè)置為”空“,例如:public $layout='';
下一節(jié)繼續(xù):Yii的魔術(shù)師:gii,Yii模塊及模塊自定義
相關(guān)文章
PHP實(shí)現(xiàn)正則匹配所有括號(hào)中的內(nèi)容
這篇文章主要介紹了PHP實(shí)現(xiàn)正則匹配所有括號(hào)中的內(nèi)容,需要的朋友可以參考下2018-06-06
ThinkPHP行為擴(kuò)展Behavior應(yīng)用實(shí)例詳解
這篇文章主要介紹了ThinkPHP行為擴(kuò)展Behavior應(yīng)用實(shí)例,對(duì)于讀者深入了解ThinkPHP框架程序設(shè)計(jì)大有幫助,需要的朋友可以參考下2014-07-07
PHP下 Mongodb 連接遠(yuǎn)程數(shù)據(jù)庫的實(shí)例代碼
這篇文章主要介紹了PHP下 Mongodb 連接遠(yuǎn)程數(shù)據(jù)庫的實(shí)例代碼,需要的朋友可以參考下2017-08-08
基于php實(shí)現(xiàn)七牛抓取遠(yuǎn)程圖片
由于公司網(wǎng)站之前的用戶頭像都是存儲(chǔ)在自己的服務(wù)器上的,后來感覺管理不方便,新增加的用戶頭像都上傳到了七牛,為了方便統(tǒng)一管理,領(lǐng)導(dǎo)說把本地服務(wù)器的頭像全部遷移到了七牛2015-12-12
Yii2框架視圖(View)操作及Layout的使用方法分析
這篇文章主要介紹了Yii2框架視圖(View)操作及Layout的使用方法,結(jié)合具體實(shí)例形式分析了Yii2框架視圖操作及布局layout相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
YII框架實(shí)現(xiàn)自定義第三方擴(kuò)展操作示例
這篇文章主要介紹了YII框架實(shí)現(xiàn)自定義第三方擴(kuò)展操作,結(jié)合實(shí)例形式分析了Yii框架自定義第三方擴(kuò)展操作的步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04

