国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP開發(fā) Yii2.0應用結構小工具

Yii2.0應用結構小工具

Nov 25, 2016 pm 02:16 PM
yii

小工具是在 視圖 中使用的可重複使用單元,使用物件導向方式建立複雜和可設定使用者介面單元。 例如,日期選擇器小工具可產(chǎn)生一個精緻的允許使用者選擇日期的日期選擇器, 你只需要在視圖中插入以下程式碼:

<?php 
use yii\jui\DatePicker;
?>
<?= DatePicker::widget([&#39;name&#39; => &#39;date&#39;]) ?>

Yii提供許多優(yōu)秀的小部件,例如[[yiiwidgetsActiveForm|active form] ], [yiiwidgetsMenu|menu]], jQuery UI widgets, Twitter Bootstrap widgets。 接下來介紹小部件的基本知識,如果你想了解某個小部件請參考對應的類別API文件。

使用小部件

小部件基本上在views中使用,在視圖中可調用 [[yiibaseWidget::widget()]] 方法使用小部件。 此方法使用 配置 陣列初始化小部件並傳回小部件渲染後的結果。 例如以下程式碼插入一個日期選擇器小部件,它配置為使用俄羅斯語,輸入框內容為$model的from_date屬性值。

<?php
use yii\jui\DatePicker;
?>
<?= DatePicker::widget([    
&#39;model&#39; => $model,    
&#39;attribute&#39; => &#39;from_date&#39;,    
&#39;language&#39; => &#39;ru&#39;,    
&#39;clientOptions&#39; => [        
&#39;dateFormat&#39; => &#39;yy-mm-dd&#39;,    
],]) 
?>

一些小元件可在[[yiibaseWidget::begin()]] 和 [[yiibaseWidget::end()]] 呼叫中使用資料內容。 Some widgets can take a block of content which should be enclosed between the invocation of 例如以下程式碼使用[[yiiwidgetsActiveForm]]小元件產(chǎn)生一個登入表單,小元件會在begin()?和0?end()執(zhí)行處分別產(chǎn)生

的開始標籤和結束標籤,中間的任何程式碼也會被渲染。

<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>
<?php $form = ActiveForm::begin([&#39;id&#39; => &#39;login-form&#39;]); ?>

    <?= $form->field($model, &#39;username&#39;) ?>

    <?= $form->field($model, &#39;password&#39;)->passwordInput() ?>

    <div class="form-group">
        <?= Html::submitButton(&#39;Login&#39;) ?>
    </div><?php ActiveForm::end(); ?>

注意和呼叫 [[yiibaseWidget::widget()]] 傳回渲染結果不同, 呼叫 [[yiibaseWidget::begin()]] 方法傳回可組成小工具內容的小工具實例。

建立小部件

繼承 [[yiibaseWidget]] 類別並覆寫 [[yiibaseWidget::init()]] 和/或 [[yiibaseWidget::run()]] 方法可建立小部件。通常init()?方法處理小工具屬性,?run()?方法包含小工具產(chǎn)生渲染結果的程式碼。 渲染結果可在run()方法中直接"echoed"輸出或以字串傳回。

如下程式碼中HelloWidget編碼並顯示賦給message?屬性的值, 如果屬性沒有被賦值,預設??會顯示"Hello World"。

namespace app\components;
use yii\base\Widget;
use yii\helpers\Html;
class HelloWidget extends Widget{
   public $message;

   public function init()
   {
       parent::init();
       if ($this->message === null) {
           $this->message = &#39;Hello World&#39;;
       }
   }

   public function run()
   {
       return Html::encode($this->message);
   }}

使用這個小工具只需在視圖中簡單使用以下程式碼:

<?php
use app\components\HelloWidget;
?>
<?= HelloWidget::widget([&#39;message&#39; => &#39;Good morning&#39;]) ?>

以下是另一個可在begin()?和?end()呼叫中使用的HelloWidget,HTML編碼內容然後顯示。

namespace app\components;
use yii\base\Widget;
use yii\helpers\Html;
class HelloWidget extends Widget{
   public function init()
   {
       parent::init();
       ob_start();
   }

   public function run()
   {
       $content = ob_get_clean();
       return Html::encode($content);
   }}

如上所示,PHP輸出緩衝在init()啟動,所有在init()?和?run()方法之間的輸出內容都會被獲取,並在run()處理和返回。

補充: 當你呼叫[[yiibaseWidget::begin()]] 時會建立一個新的小部件實例並在建構結束時呼叫init()方法, 在end()時會呼叫run()方法並輸出返回結果。

如下程式碼顯示如何使用這種?HelloWidget:

<?php
use app\components\HelloWidget;
?>
<?php HelloWidget::begin(); ?>
       content that may contain <tag>&#39;s
<?php HelloWidget::end(); ?>

有時小部件需要渲染很多內容,更好的方法是將內容放入一個視圖文件,然後調用[[yiibaseWidget::render()]]方法渲染該檢視文件,例如:

public function run(){
    return $this->render(&#39;hello&#39;);}

小工具的檢視檔案預設儲存在WidgetPath/views目錄,WidgetPath代表小工具類別檔案所在的目錄。 假如上述範例小工具類別檔案在@app/components下,會渲染@app/components/views/hello.php視圖檔。 You may override 可以覆寫[[yiibaseWidget::getViewPath()]]方法自訂檢視檔案所在路徑。

最佳實踐

小部件是物件導向方式來重複使用視圖程式碼。

創(chuàng)建小部件時仍需要遵循MVC模式,通常邏輯代碼在小部件類,展示內容在視圖中。

小部件設計時應是獨立的,也就是說使用一個小部件時候,可以直接丟棄它而不需要額外的處理。 但是當小部件需要外部資源如CSS, JavaScript, 圖片等會比較棘手, 幸運的時候Yii提供 資源包 來解決這個問題。

當一個小部件只包含視圖代碼,它和視圖很相似, 實際上,在這種情況下,唯一的區(qū)別是小部件是可以重用類,視圖只是應用中使用的普通PHP腳本。


本網(wǎng)站聲明
本文內容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Yii2 vs Phalcon:哪個框架更適合開發(fā)顯示卡渲染應用? Yii2 vs Phalcon:哪個框架更適合開發(fā)顯示卡渲染應用? Jun 19, 2023 am 08:09 AM

在當前資訊時代,大數(shù)據(jù)、人工智慧、雲(yún)端運算等技術已成為了各大企業(yè)關注的熱點。在這些技術中,顯示卡渲染技術作為一種高效能圖形處理技術,受到了越來越多的關注。顯示卡渲染技術廣泛應用於遊戲開發(fā)、影視特效、工程建模等領域。而對於開發(fā)者來說,選擇一個適合自己專案的框架,是一個非常重要的決策。在目前的語言中,PHP是一種相當有活力的語言,一些優(yōu)秀的PHP框架如Yii2、Ph

Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個開源的PHPWeb應用程式框架,提供了眾多的工具和元件,簡化了Web應用程式開發(fā)的流程,其中資料查詢是其中一個重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

Symfony vs Yii2:哪個框架比較適合開發(fā)大型Web應用? Symfony vs Yii2:哪個框架比較適合開發(fā)大型Web應用? Jun 19, 2023 am 10:57 AM

隨著Web應用需求的不斷增長,開發(fā)者在選擇開發(fā)框架方面也越來越有選擇的空間。 Symfony和Yii2是兩個備受歡迎的PHP框架,它們都具有強大的功能和效能,但在面對需要開發(fā)大型網(wǎng)路應用程式時,哪個框架更適合呢?接下來我們將對Symphony和Yii2進行比較分析,以幫助你更好地進行選擇?;靖攀鯯ymphony是一個由PHP編寫的開源Web應用框架,它是建立

php如何使用Yii3框架? php如何使用Yii3框架? May 31, 2023 pm 10:42 PM

隨著互聯(lián)網(wǎng)的不斷發(fā)展,Web應用程式開發(fā)的需求也越來越高。對於開發(fā)人員而言,開發(fā)應用程式需要一個穩(wěn)定、高效、強大的框架,這樣可以提高開發(fā)效率。 Yii是一款領先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎上進一步優(yōu)化了效能和程式碼品質。在這篇文章中,我們將介紹如何使用Yii3框架來開發(fā)PHP應用程式。

如何使用PHP框架Yii開發(fā)一個高可用的雲(yún)端備份系統(tǒng) 如何使用PHP框架Yii開發(fā)一個高可用的雲(yún)端備份系統(tǒng) Jun 27, 2023 am 09:04 AM

隨著雲(yún)端運算技術的不斷發(fā)展,資料的備份已經(jīng)成為了每個企業(yè)必須要做的事情。在這樣的背景下,開發(fā)一款高可用的雲(yún)端備份系統(tǒng)尤其重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發(fā)者快速建立高效能的Web應用程式。以下將介紹如何使用Yii框架開發(fā)一款高可用的雲(yún)端備份系統(tǒng)。設計資料庫模型在Yii框架中,資料庫模型是非常重要的一環(huán)。因為資料備份系統(tǒng)需要用到很多的表和關

php框架laravel和yii區(qū)別是什麼 php框架laravel和yii區(qū)別是什麼 Apr 30, 2025 pm 02:24 PM

Laravel和Yii的主要區(qū)別在於設計理念、功能特性和使用場景。 1.Laravel注重開發(fā)的簡潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開發(fā)和初學者。 2.Yii強調性能和效率,適用於高負載應用,提供高效的ActiveRecord和緩存系統(tǒng),但學習曲線較陡。

yii與Docker:容器化和部署您的應用程序 yii與Docker:容器化和部署您的應用程序 Apr 02, 2025 pm 02:13 PM

使用Docker容器化和部署Yii應用的步驟包括:1.創(chuàng)建Dockerfile,定義鏡像構建過程;2.使用DockerCompose啟動Yii應用和MySQL數(shù)據(jù)庫;3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術操作,還包括理解Dockerfile的工作原理和最佳實踐,以確保高效、可靠的部署。

Yii2 vs Symfony:哪個框架比較適合API開發(fā)? Yii2 vs Symfony:哪個框架比較適合API開發(fā)? Jun 18, 2023 pm 11:00 PM

隨著網(wǎng)路的快速發(fā)展,API成為了各種應用間資料交換的重要方式。因此,開發(fā)一款易於維護、高效、穩(wěn)定的API框架變得越來越重要。而在選擇API框架時,Yii2和Symfony是兩個備受開發(fā)者歡迎的選擇。那麼,哪一個比較適合API開發(fā)呢?本文將對這兩個框架進行比較,並給出一些結論。一、基本介紹Yii2和Symfony都是成熟的PHP框架,都有相應的擴展,可以用來開

See all articles