ホームページ PHPフレームワーク YII yii2 におけるコンポーネントとは何を意味しますか?

yii2 におけるコンポーネントとは何を意味しますか?

Dec 09, 2019 am 11:15 AM
yii2 コンポーネント

yii2 におけるコンポーネントとは何を意味しますか?

Component は、YII フレームワーク アプリケーション (アプリケーション) の主要コンポーネントであり、[yii\base\Component] のインスタンスまたはサブクラスです。コンポーネントには 3 つの重要な特性 (機能) があります。

##·プロパティ

·イベント

·動作

これらの機能を単独で、または組み合わせて使用​​すると、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] を継承しているため、簡単に変更できます。

このコンポーネントは非常に強力ですが、そのオーバーヘッドは通常のクラスよりも大きくなりますその理由は、コンポーネントがイベントと動作を処理するために追加のメモリと CPU 時間を必要とするためです。コンポーネントがイベントと動作の 2 つの特性 (関数) を必要としない場合は、 [yii\base\Object] を直接継承できます。コンポーネントのパフォーマンス (効率) が通常のクラス オブジェクトと一致しており、プロパティをサポートしていること。

[yii\base\Component] または [yii\base\Object] を継承するクラスを作成するには、次の規則に従う必要があります:

·コンストラクターを書き換えると仮定すると、コンストラクターの最後のパラメーターとしてパラメーター $config を定義する必要があります。このパラメーターは、使用するために親クラスのコンストラクターに渡されます。 ·

親クラスのコンストラクターは、オーバーライドされたコンストラクターの最後で呼び出す必要があります。 ·

[yii を書き換えるとします。 \base\Object: :init()|init()] メソッドの場合は、オーバーライドされた init メソッドから開始して親クラスの 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
    }
}
ログイン後にコピー
次のようにします。コンポーネントの作成時にプロパティを設定 (初期化) できるようにする次の例:

$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// alternatively
$component = \Yii::createObject([
    'class' => MyClass::className(),
    'prop1' => 3,
    'prop2' => 4,
], [1, 2]);
ログイン後にコピー

ヒント: [Yii::createOject()] の使用はより複雑に見えますが、[Yii::createObject] はベースになっているためです。依存関係注入の実装に基づいているため、より強力です

[yii\base\Object] クラスは次のライフサイクルを強制します:

(1) コンストラクターで事前初期化を実装すると、次のことが可能になります。現時点ではデフォルトを設定します 属性値;

(2) $config を介してオブジェクトを構成します。デフォルト値はコンストラクターのオブジェクト構成を通じてオーバーライドできます;

(3) In [ yii\base\Object::init ()|init()] メソッドで初期化設定を実行します。定期的なチェックと属性の正規化チェックは、init メソッドで実装できます;

(4) オブジェクト メソッドの呼び出し。

最初の 3 つのステージはすべてコンストラクターに実装されています。つまり、オブジェクトのインスタンスを取得すると、そのインスタンスは適切な状態に初期化されており、安心して使用できます。

PHP 中国語 Web サイトには、無料の

Yii 入門チュートリアル

が多数あり、誰でも学習することができます。

以上がyii2 におけるコンポーネントとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 10 旧バージョンコンポーネント DirectPlay のインストール方法 Windows 10 旧バージョンコンポーネント DirectPlay のインストール方法 Dec 28, 2023 pm 03:43 PM

win10で一部のゲームをプレイすると、画面がフリーズしたり画面がぼやけるなどの不具合が多くのユーザーに発生しますが、現時点ではダイレクトプレイ機能をオンにすることで問題を解決でき、機能の操作方法も非常に簡単です。 win10 の古いコンポーネントである Directplay をインストールする方法 1. 検索ボックスに「コントロール パネル」と入力して開きます 2. 表示方法として大きなアイコンを選択します 3. 「プログラムと機能」を見つけます 4. 左側をクリックして有効にするか、 Win 機能をオフにする 5. ここで古いバージョンを選択します チェックボックスをオンにするだけです

Vueを使用してカレンダーコンポーネントを実装するにはどうすればよいですか? Vueを使用してカレンダーコンポーネントを実装するにはどうすればよいですか? Jun 25, 2023 pm 01:28 PM

Vue は非常に人気のあるフロントエンド フレームワークであり、コンポーネント化、データ バインディング、イベント処理など、開発者が効率的で柔軟で保守が容易な Web アプリケーションを構築するのに役立つ多くのツールと機能を提供します。この記事では、Vueを使ってカレンダーコンポーネントを実装する方法を紹介します。 1. 要件の分析 まず、このカレンダー コンポーネントの要件を分析する必要があります。基本的なカレンダーには次の機能が必要です: 当月のカレンダー ページの表示、前月または翌月への切り替えのサポート、特定の日のクリックのサポート、

VUE3 開発の基本: extend を使用してコンポーネントを継承する VUE3 開発の基本: extend を使用してコンポーネントを継承する Jun 16, 2023 am 08:58 AM

Vue は現在最も人気のあるフロントエンド フレームワークの 1 つであり、VUE3 は Vue フレームワークの最新バージョンであり、VUE2 と比較してパフォーマンスが高く、開発エクスペリエンスが優れているため、多くの開発者の最初の選択肢となっています。 VUE3 では extends を使ってコンポーネントを継承することが非常に実用的な開発手法となっておりますので、この記事では extends を使ってコンポーネントを継承する方法を紹介します。エクステンドとは何ですか? Vue では、extends は非常に実用的な属性であり、子コンポーネントが親から継承するために使用できます。

Vue が JSX を通じてコン​​ポーネントを動的にレンダリングする方法について話しましょう Vue が JSX を通じてコン​​ポーネントを動的にレンダリングする方法について話しましょう Dec 05, 2022 pm 06:52 PM

Vue はどのようにして JSX を通じてコン​​ポーネントを動的にレンダリングしますか?次の記事では、Vue が JSX を通じてコン​​ポーネントを効率的に動的にレンダリングする方法を紹介します。

Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Mar 15, 2024 pm 04:51 PM

Angular フレームワークのコンポーネントのデフォルトの表示動作は、ブロックレベルの要素ではありません。この設計の選択により、コンポーネント スタイルのカプセル化が促進され、開発者が各コンポーネントの表示方法を意識的に定義することが促進されます。 CSS プロパティの表示を明示的に設定することで、Angular コンポーネントの表示を完全に制御して、目的のレイアウトと応答性を実現できます。

古いバージョンのwin10コンポーネントの設定を開く方法 古いバージョンのwin10コンポーネントの設定を開く方法 Dec 22, 2023 am 08:45 AM

Win10 の古いバージョンのコンポーネントは、デフォルトで閉じられていることが多いため、ユーザー自身が設定で有効にする必要があります。まず、設定を入力する必要があります。操作は非常に簡単です。以下の手順に従ってください。Win10 の古いバージョンはどこにありますか?バージョン コンポーネント? 開く 1. [スタート] をクリックし、[Win システム] をクリックします 2. クリックしてコントロール パネルに入ります 3. 次に、下のプログラムをクリックします 4. [Win 機能を有効または無効にする] をクリックします 5. ここで必要なものを選択できます開く

Vue コンポーネントの実践: ページング コンポーネントの開発 Vue コンポーネントの実践: ページング コンポーネントの開発 Nov 24, 2023 am 08:56 AM

Vue コンポーネントの実践: ページング コンポーネント開発の概要 Web アプリケーションでは、ページング機能は不可欠なコンポーネントです。優れたページング コンポーネントは、プレゼンテーションがシンプルかつ明確で、機能が豊富で、統合と使用が簡単である必要があります。この記事では、Vue.js フレームワークを使用して高度にカスタマイズ可能なページング コンポーネントを開発する方法を紹介します。 Vueコンポーネントを使った開発方法をコード例を通して詳しく解説します。テクノロジースタック Vue.js2.xJavaScript (ES6) HTML5 および CSS3 開発環境

yii2でjqueryを削除する方法 yii2でjqueryを削除する方法 Feb 17, 2023 am 09:55 AM

yii2 から jquery を削除する方法: 1. AppAsset.php ファイルを編集し、変数 $depends の「yii\web\YiiAsset」値をコメント アウトします; 2. main.php ファイルを編集し、設定「'yii」を以下に追加しますフィールド「components」\web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," を使用して jquery スクリプトを削除します。

See all articles