Yii之目錄結構、入口檔案及路由設定

來源:互聯網
上載者:User
這篇文章主要介紹了關於Yii之目錄結構、入口檔案及路由設定,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

本文從YII的目錄結構開始分析,到入口檔案分析,到路由設定詳解,視圖詳解,十分全面的向我們展示了YII架構的方方面面,是篇非常不錯的文章,這裡推薦給大家。

項目名稱從“FantaCMS”修改成為“testyii”—————— 俗!

1,項目目錄結構分析

2,Yii入口檔案分析

在Yii啟動項目時,傳遞了項目主設定檔數組,那麼Yii會在整個應用中綁定一個全域的Yii對象並且可以通過如下方法來調用該對象:Yii::app()

Yii系統把設定檔中的數組值,通過索引值對的形式綁定到了該對象上,例如在設定檔中我們配置了:

'name'=>'My Web Application',

那麼我們在項目的任何一個地方通過該對象的屬性就可以擷取到“name”的值,方法為:

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模組及模組自訂

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.