国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

詳解在PHP的Yii框架中使用行為Behaviors的方法

2024-05-04 23:44:06
字體:
供稿:網(wǎng)友
這篇文章主要介紹了在PHP的Yii框架中使用行為Behaviors的方法,包括行為的綁定與解除等操作講解,需要的朋友可以參考下
 

一個綁定了行為的類,表現(xiàn)起來是這樣的:

// 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();

上面的代碼你不用全都看懂,雖然你可能已經(jīng)用腳趾頭猜到了這些代碼的意思, 但這里你只需要記住行為中的屬性和方法可以被所綁定的類像訪問自身的屬性和方法一樣直接訪問就OK了。 代碼中, $myClass 是沒有 property1 method() 成員的。這倆是 $myBehavior 的成員。 但是,通過 attachBehavior() 將行為綁定到對象之后, $myCalss 就好像練成了吸星大法、化功大法,表現(xiàn)的財大氣粗,將別人的屬性和方法都變成了自己的。

另外,從上面的代碼中,你還要掌握使用行為的大致流程:

  • 從 yii/base/Component 派生自己的類,以便使用行為;
  • 從 yii/base/Behavior 派生自己的行為類,里面定義行為涉及到的屬性、方法;
  • 將Component和Behavior綁定起來;
  • 像使用Component自身的屬性和方法一樣,盡情使用行為中定義的屬性和方法。

使用行為,必須像前文描述的一樣先把它附加到 yii/base/Component 類或其子類。一旦行為附加到組件,就可以直接使用它。

行為附加到組件后,可以通過組件訪問一個行為的公共成員變量或 getter 和 setter 方法定義的屬性:

// "prop1" 是定義在行為類的屬性echo $component->prop1;$component->prop1 = $value;類似地也可以調(diào)用行為的公共方法:// foo() 是定義在行為類的公共方法$component->foo();

如你所見,盡管 $component 未定義 prop1 和 foo() ,它們用起來也像組件自己定義的一樣。

如果兩個行為都定義了一樣的屬性或方法,并且它們都附加到同一個組件,那么首先附加上的行為在屬性或方法被訪問時有優(yōu)先權(quán)。

附加行為到組件時的命名行為,可以使用這個名稱來訪問行為對象,如下所示:

$behavior = $component->getBehavior('myBehavior');

也能獲取附加到這個組件的所有行為:

$behaviors = $component->getBehaviors();

移除行為

要移除行為,可以調(diào)用 yii/base/Component::detachBehavior() 方法用行為相關(guān)聯(lián)的名字實現(xiàn):

$component->detachBehavior('myBehavior1');

也可以移除全部行為:

$component->detachBehaviors();
 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 柳林县| 黄冈市| 木里| 依安县| 洱源县| 松原市| 黄石市| 桐乡市| 玉屏| 连平县| 山西省| 桂平市| 枣强县| 烟台市| 罗甸县| 大厂| 尉氏县| 平塘县| 宁德市| 巩义市| 清丰县| 赣榆县| 扎赉特旗| 巢湖市| 鄂尔多斯市| 岳阳市| 淮北市| 儋州市| 正定县| 岫岩| 商河县| 秀山| 通辽市| 正阳县| 蒙山县| 青海省| 永靖县| 阜新| 兴国县| 富裕县| 绵竹市|