コンポーネントは、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, ['prop1' => 3, 'prop2' => 4]); // 方法二: $component = \Yii::createObject([ 'class' => MyClass::className(), 'prop1' => 3, 'prop2' => 4, ], [1, 2])
以上がyii2.0 コンポーネントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。