ホームページ >PHPフレームワーク >YII >yii2.0 コンポーネントとは何ですか?

yii2.0 コンポーネントとは何ですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-04 11:39:112916ブラウズ

yii2.0 コンポーネントとは何ですか?

コンポーネントは、Yii アプリケーションの主要な構成要素です。 yii\base\Component クラスまたはそのサブクラスのインスタンスです。他のクラスと区別するために使用される 3 つの主な関数は次のとおりです。

Property (推奨学習: yii Framework)

Event (イベント)

Behavior (動作)

単独で使用することも、相互に組み合わせて使用​​することもできます。これらの関数を適用すると、Yii クラスがより柔軟で使いやすくなります。ウィジェット yii\jui\DatePicker を例に挙げます。これは、ビュー内でインタラクティブな日付ピッカーの生成を容易にする UI コンポーネントです:

use yii\jui\DatePicker;

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

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

このウィジェットは、yii\base\Component から継承し、そのさまざまな機能を継承します。アイテムのプロパティは簡単にオーバーライドできます。

コンポーネントは強力な機能を備えているため、イベントや動作の処理に追加のメモリと CPU 時間を使用するため、通常のオブジェクト (オブジェクト) よりもわずかに重くなります。

これら 2 つの関数が必要ない場合は、yii\base\Component の代わりに yii\base\Object を継承できます。このようにして、コンポーネントは、プロパティ関数もサポートしながら、通常の PHP オブジェクトと同じくらい効率的になります。

yii\base\Component または yii\base\Object を継承する場合は、次のコーディング スタイルを使用することをお勧めします:

コンストラクターをオーバーライドする必要がある場合(Constructor )、コンストラクター メソッドの最後のパラメーターとして $config を渡し、それを親クラスのコンストラクターに渡します。

常に、オーバーライドされたコンストラクターの最後で親クラスのコンストラクターを呼び出します。

yii\base\BaseObject::init() メソッドをオーバーライドする場合は、必ず init メソッドの先頭で親クラスの init メソッドを呼び出してください。

<?php

namespace yii\components\MyClass;

use yii\base\BaseObject;

class MyClass extends BaseObject
{
    public $prop1;
    public $prop2;

    public function __construct($param1, $param2, $config = [])
    {
        // ... 在应用配置之前初始化

        parent::__construct($config);
    }

    public function init()
    {
        parent::init();

        // ... 应用配置后进行初始化
    }
}

また、インスタンス作成時にコンポーネントが正しく設定されるように、次の操作プロセスに従ってください:

$component = new MyClass(1, 2, [&#39;prop1&#39; => 3, &#39;prop2&#39; => 4]);
// 方法二:
$component = \Yii::createObject([
    &#39;class&#39; => MyClass::className(),
    &#39;prop1&#39; => 3,
    &#39;prop2&#39; => 4,
], [1, 2])

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

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