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

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

爱喝马黛茶的安东尼
リリース: 2019-12-09 11:15:49
オリジナル
3187 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート