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

首頁 php框架 YII yii2中組件什么意思

yii2中組件什么意思

Dec 09, 2019 am 11:15 AM
yii2 組件

yii2中組件什么意思

組件是YII框架application(應(yīng)用)的主要組成部分,它是 [yii\base\Component]的實例或者子類。組件有三個重要特征(功能):

·屬性(properties)

·事件(events)

·行為(behaviors)

單獨或者組合使用這些特征,可以讓yii框架的類變得更加易用和可定制。舉個例子,引入一個用戶交互組件[yii\jui\DataPicker\data picker wigets],可以很輕松的在視圖中生成一個日期選擇控件(jquery ui date picker)。

use yii\jui\DatePicker;
echo DatePicker::widget([
    'language' => 'ru',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

DatePicker掛件的屬性很容易被修改,原因就在于他繼承了類[yii\base\Componet]

盡管組件很強(qiáng)大,但是其開銷也大于普通的類對象,原因在于組件需要額外的內(nèi)存和CPU時間去處理事件(events)和行為(behaviors).如果你的組件不需要事件和行為這兩個特征(功能),可以直接繼承[yii\base\Object],這樣你的組件在性能(效率)上和普通類對象一致,且支持屬性(properties)。

編寫一個繼承[yii\base\Component]或者[yii\base\Object]的類,需要遵循以下約定:

·假設(shè)你重寫了構(gòu)造函數(shù),必須定義一個參數(shù)$config,作為構(gòu)造函數(shù)的最后一個參數(shù),此參數(shù)被傳遞給父類的構(gòu)造函數(shù)使用

·在重寫的構(gòu)造函數(shù)的結(jié)尾必須調(diào)用父類的構(gòu)造函數(shù)

·假設(shè)你重寫了[yii\base\Object::init()|init()]方法,那么必須在重寫的init方法開始調(diào)用父類的init方法

舉個例子

namespace yii\components\MyClass;
use yii\base\Object;
class MyClass extends Object
{
    public $prop1;
    public $prop2;
    public function __construct($param1, $param2, $config = [])
    {
        // ... initialization before configuration is applied
        parent::__construct($config);
    }
    public function init()
    {
        parent::init();
        // ... initialization after configuration is applied
    }
}

遵循如下示例,可使你的組件在創(chuàng)建時屬性即可被配置(初始化):

$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// alternatively
$component = \Yii::createObject([
    'class' => MyClass::className(),
    'prop1' => 3,
    'prop2' => 4,
], [1, 2]);

提示:使用[Yii::createOject()]的方式看起來更加復(fù)雜,但是因為[Yii::createObject]是基于依賴注入的實現(xiàn),因此更加強(qiáng)大

[yii\base\Object]類強(qiáng)制實現(xiàn)如下生命周期:

(1)在構(gòu)造函數(shù)里實現(xiàn)預(yù)初始化,可以在這個時候設(shè)定默認(rèn)的屬性值;

(2)通過$config配置對象,在構(gòu)造函數(shù)里通過對象配置可以覆蓋默認(rèn)值;

(3)在[yii\base\Object::init()|init()]方法里,進(jìn)行初始化后的配置。可以在init方法里實現(xiàn)例行檢查和屬性正?;瘷z查;

(4)對象方法調(diào)用。

開始的三個階段都在構(gòu)造函數(shù)里實現(xiàn),這意味著當(dāng)你得到一個對象的實例時,它已經(jīng)被初始化為適當(dāng)?shù)臓顟B(tài),可以被放心的使用。

PHP中文網(wǎng),有大量免費(fèi)的Yii入門教程,歡迎大家學(xué)習(xí)!

以上是yii2中組件什么意思的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
如何安裝Win10舊版本組件DirectPlay 如何安裝Win10舊版本組件DirectPlay Dec 28, 2023 pm 03:43 PM

不少用戶在玩win10的的一些游戲的時候總是會遇到一些問題,比如說卡屏和花屏等等情況,這個時候我們是可以采用打開directplay這個功能來解決的,而且功能的操作方法也很簡單。win10舊版組件directplay怎么安裝1、在搜索框里面輸入“控制面板”然后打開2、查看方式選擇大圖標(biāo)3、找到“程序和功能”4、點擊左側(cè)的啟用或關(guān)閉win功能5、選擇舊版這里的勾選上就可以了

如何使用 Vue 實現(xiàn)日歷組件? 如何使用 Vue 實現(xiàn)日歷組件? Jun 25, 2023 pm 01:28 PM

Vue是一款非常流行的前端框架,它提供了很多工具和功能,如組件化、數(shù)據(jù)綁定、事件處理等,能夠幫助開發(fā)者構(gòu)建出高效、靈活和易維護(hù)的Web應(yīng)用程序。在這篇文章中,我來介紹如何使用Vue實現(xiàn)一個日歷組件。1、需求分析首先,我們需要分析一下這個日歷組件的需求。一個基本的日歷應(yīng)該具備以下功能:展示當(dāng)前月份的日歷頁面;支持切換到前一月或下一月;支持點擊某一天,

VUE3開發(fā)基礎(chǔ):使用extends繼承組件 VUE3開發(fā)基礎(chǔ):使用extends繼承組件 Jun 16, 2023 am 08:58 AM

Vue是目前最流行的前端框架之一,而VUE3則是Vue框架的最新版本,相較于VUE2,VUE3具備了更高的性能和更出色的開發(fā)體驗,成為了眾多開發(fā)者的首選。在VUE3中,使用extends繼承組件是一個非常實用的開發(fā)方式,本文將為大家介紹如何使用extends繼承組件。extends是什么?在Vue中,extends是一個非常實用的屬性,它可以用于子組件繼承父

VSCode插件分享:一個實時預(yù)覽Vue/React組件的插件 VSCode插件分享:一個實時預(yù)覽Vue/React組件的插件 Mar 17, 2022 pm 08:07 PM

在VSCode中開發(fā)Vue/React組件時,怎么實時預(yù)覽組件?本篇文章就給大家分享一個VSCode 中實時預(yù)覽Vue/React組件的插件,希望對大家有所幫助!

如何打開win10舊版組件的設(shè)置 如何打開win10舊版組件的設(shè)置 Dec 22, 2023 am 08:45 AM

win10舊版組件是需要用戶自己去設(shè)置里面打開的,因為很多的組件平時都是默認(rèn)關(guān)閉的狀態(tài),首先我們需要進(jìn)入到設(shè)置里面,操作很簡單,跟著下面的步驟來就可以了win10舊版組件在哪里打開1、點擊開始,然后點擊“win系統(tǒng)”2、點擊進(jìn)入控制面板3、再點擊下面的程序4、點擊“啟用或關(guān)閉win功能”5、在這里就可以選擇你要的打開了

Angular組件及其顯示屬性:了解非block默認(rèn)值 Angular組件及其顯示屬性:了解非block默認(rèn)值 Mar 15, 2024 pm 04:51 PM

Angular框架中組件的默認(rèn)顯示行為不是塊級元素。這種設(shè)計選擇促進(jìn)了組件樣式的封裝,并鼓勵開發(fā)人員有意識地定義每個組件的顯示方式。通過顯式設(shè)置CSS屬性 display,Angular組件的顯示可以完全控制,從而實現(xiàn)所需的布局和響應(yīng)能力。

Vue組件實戰(zhàn):分頁組件開發(fā) Vue組件實戰(zhàn):分頁組件開發(fā) Nov 24, 2023 am 08:56 AM

Vue組件實戰(zhàn):分頁組件開發(fā)介紹在Web應(yīng)用程序中,分頁功能是必不可少的一個組件。一個好的分頁組件應(yīng)該展示簡潔明了,功能豐富,而且易于集成和使用。在本文中,我們將介紹如何使用Vue.js框架來開發(fā)一個高度可定制化的分頁組件。我們將通過代碼示例來詳細(xì)說明如何使用Vue組件開發(fā)。技術(shù)棧Vue.js2.xJavaScript(ES6)HTML5和CSS3開發(fā)環(huán)

Vue組件開發(fā):進(jìn)度條組件實現(xiàn)方法 Vue組件開發(fā):進(jìn)度條組件實現(xiàn)方法 Nov 24, 2023 am 08:56 AM

Vue組件開發(fā):進(jìn)度條組件實現(xiàn)方法前言:在Web開發(fā)中,進(jìn)度條是一種常見的UI組件,在數(shù)據(jù)請求、文件上傳、表單提交等場景中常用來顯示操作的進(jìn)度。在Vue.js中,通過自定義組件的方式,我們可以很方便地實現(xiàn)一個進(jìn)度條組件,本文將介紹一種實現(xiàn)方法,并提供具體的代碼示例。希望能對Vue.js初學(xué)者有所幫助。組件的結(jié)構(gòu)和樣式首先,我們需要定義進(jìn)度條組件的基本結(jié)構(gòu)和樣

See all articles