PHP開發架構Yii Framework教程(9) UI小工具Widget概述

來源:互聯網
上載者:User
和通常的應用程式開發架構一樣,Yii Framework也提供了一組UI小工具(CWidget)來協助程式員設計使用者介面,小組是 CWidget 或其子類的執行個體.它是一個主要用於表現資料的組件.小組通常內嵌於一個視圖來產生一些複雜而獨立的使用者介面.例如, 一個日曆小物件可用於渲染一個複雜的日曆介面.小工具使使用者介面更加可複用.

我們可以按如下視圖指令碼來使用一個小 物件:

beginWidget('path.to.WidgetClass'); ?>


...可能會由小物件擷取的內容主體...
endWidget(); >或者

widget ('path.to.WidgetClass'); ? >;

後者用於不需要任何 body 內容的組件.

小工具可通過配置來定製它的表現.這是通過調用 CBaseController::beginWidget 或 CBaseController::widget 設定其初始化屬性值來完成的.。例如,當使用 CMaskedTextField 小物件時,我們想指定被使用的 mask 。我們通過傳遞一個攜帶這些屬性初始化值的數組來實現.。這裡的數組的鍵是屬性的名稱,而數組的值則是小物件屬性所對應的值。正如以下所示 :

$this->widget('CMaskedTextField',array('mask'=>'99/99/9999'));?>繼承 CWidget 並覆蓋其init() 和 run() 方法,可以定義一個新的小物件:class MyWidget extendsCWidget{public function init(){// 此方法會被 CController::beginWidget() 調用}public function run(){// 此方法會被 CController::endWidget() 調用}}

小工具可以像一個控制器一樣擁有它自己的視圖。預設情況下,小物件的視圖檔案位於包含了小工具類檔案目錄的 views 子目錄之下.這些視圖可以通過調用 CWidget::render() 渲染,這一點和控制器很相似.唯一不同的是,小工具的視圖沒有布局檔案支援。另外,小工具視圖中的$this指向小物件執行個體而不是控制器執行個體。

在上一篇文章Yii Framework 開發簡明教程(8) 使用FormModel 說通過CController來處理使用者提交事件,和Windows 案頭應用或ASP.Net做個類比,Yii 中視圖View (HTML Form) 類似於WinForm或是Asp.Net 的Page。控制類Controller類似Windows案頭應用或Asp.Net的事件處理(Code- Behind)類。 嚴格上來說,把 Yii 中視圖View (HTML Form)比作Windows案頭中的WinFrom或是Asp.Net 的Page並不十分恰當, 實際上Yii 中視圖的整個HTML (或是body)對等於WinForm或是Page。 HTML Form 也只是CWidget的一個子類,對應到 CActiveForm UI組件,此外,Yii內建了下面CWidget類型:

其中CJuiWidget (封裝JQuery)和CInputWidget進一步分為:

後面的教程將逐個介紹Yii提供的UI小工具的用法,除了這些內建的UI小工具外,Yii也支援自訂UI小工具。

以上就是PHP開發架構Yii Framework教程(9) UI小工具Widget概述的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.