PHP の Yii フレームワークでのビヘイビアーの使用方法の詳細な説明

WBOY
リリース: 2016-07-29 08:57:33
オリジナル
1031 人が閲覧しました

動作にバインドされたクラスは次のようになります:

// Step 1: 定义一个将绑定行为的类
class MyClass extends yii\base\Component
{
  // 空的
}

// Step 2: 定义一个行为类,他将绑定到MyClass上
class MyBehavior extends yii\base\Behavior
{
  // 行为的一个属性
  public $property1 = 'This is property in MyBehavior.';

  // 行为的一个方法
  public function method1()
  {
    return 'Method in MyBehavior is called.';
  }
}

$myClass = new MyClass();
$myBehavior = new MyBehavior();

// Step 3: 将行为绑定到类上
$myClass->attachBehavior('myBehavior', $myBehavior);

// Step 4: 访问行为中的属性和方法,就和访问类自身的属性和方法一样
echo $myClass->property1;
echo $myClass->method1();

ログイン後にコピー

上記のコードをすべて理解する必要はありません。これらのコードの意味は頭で推測できたかもしれませんが、ここではプロパティを覚えておくだけで済みます。また、ビヘイビアー内のメソッドには、バインドされたクラス自身のプロパティやメソッドにアクセスするのと同じように、直接アクセスできます。 コードでは、$myClass には property1 method() メンバーがありません。これら 2 つは $myBehavior のメンバーです。 しかし、attachBehavior() を通じてビヘイビアをオブジェクトにバインドした後、$myCalss は星を引き寄せてエネルギーを変換し、莫大な富を示し、他の人の属性やメソッドを自分のものに変える魔法を習得したようです。

さらに、上記のコードから、ビヘイビアーを使用する一般的なプロセスをマスターする必要もあります:

  • ビヘイビアーを使用するには、yiibaseComponent から独自のクラスを派生します。
  • 以下を定義する yiibaseBehavior から独自のビヘイビアー クラスを派生します。動作にはプロパティとメソッドが含まれます。
  • コンポーネントと動作をバインドします。
  • コンポーネント自体のプロパティとメソッドを使用するのと同じように、動作で定義されたプロパティとメソッドを使用します。

ビヘイビアーを使用するには、前述したように、まずビヘイビアーを yiibaseComponent クラスまたはそのサブクラスにアタッチする必要があります。ビヘイビアーをコンポーネントにアタッチすると、それを直接使用できます。

ビヘイビアーがコンポーネントにアタッチされると、そのコンポーネントを通じて、ゲッター メソッドとセッター メソッドによって定義されたビヘイビアーのパブリック メンバー変数またはプロパティにアクセスできます:

// "prop1" 是定义在行为类的属性
echo $component->prop1;
$component->prop1 = $value;
类似地也可以调用行为的公共方法:

// foo() 是定义在行为类的公共方法
$component->foo();

ログイン後にコピー

ご覧のとおり、$component では prop1 と foo が定義されていませんが、 () が使用されています。コンポーネント自体がそれを定義しているようです。

2 つのビヘイビアーが同じプロパティまたはメソッドを定義し、両方が同じコンポーネントにアタッチされている場合、プロパティまたはメソッドにアクセスするときは、最初にアタッチされたビヘイビアーが優先されます。

コンポーネントにビヘイビアをアタッチするときの名前付きビヘイビアー。次のように、この名前を使用してビヘイビア オブジェクトにアクセスできます:

$behavior = $component->getBehavior('myBehavior');
ログイン後にコピー

このコンポーネントにアタッチされているすべてのビヘイビアーを取得することもできます:

$behaviors = $component->getBehaviors();
ログイン後にコピー

Remove動作

動作を削除するには、動作に関連付けられた名前を使用して yiibaseComponent::detachBehavior() メソッドを呼び出すことができます:

$component->detachBehavior('myBehavior1');
ログイン後にコピー

すべての動作を削除することもできます:

$component->detachBehaviors();
ログイン後にコピー

上記では、PHP の Yii フレームワークでビヘイビアーを使用する方法を、関連する側面も含めて詳しく紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!