詳解在PHP的Yii架構中使用行為Behaviors的方法,yiibehaviors_PHP教程

來源:互聯網
上載者:User

詳解在PHP的Yii架構中使用行為Behaviors的方法,yiibehaviors


一個綁定了行為的類,表現起來是這樣的:

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

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

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

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

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

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

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

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

如果兩個行為都定義了一樣的屬性或方法,並且它們都附加到同一個組件,那麼首先附加上的行為在屬性或方法被訪問時有優先權。

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

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

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

$behaviors = $component->getBehaviors();

移除行為

要移除行為,可以調用 yii\base\Component::detachBehavior() 方法用行為相關聯的名字實現:

$component->detachBehavior('myBehavior1');

也可以移除全部行為:

$component->detachBehaviors();

您可能感興趣的文章:

  • PHP的Yii架構中移除組件所綁定的行為的方法
  • PHP的Yii架構中行為的定義與Binder 方法講解
  • 深入講解PHP的Yii架構中的屬性(Property)
  • PHP的Yii架構中使用資料庫的配置和SQL操作執行個體教程
  • 深入解析PHP的Yii架構中的event事件機制
  • 全面解讀PHP的Yii架構中的日誌功能
  • Yii使用find findAll尋找出指定欄位的實現方法
  • 解析yii資料庫的增刪查改
  • Yii PHP Framework實用入門教程(詳細介紹)
  • 詳解PHP的Yii架構中組件行為的屬性注入和方法注入

http://www.bkjia.com/PHPjc/1111898.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1111898.htmlTechArticle詳解在PHP的Yii架構中使用行為Behaviors的方法,yiibehaviors 一個綁定了行為的類,表現起來是這樣的: // Step 1: 定義一個將綁定行為的類class M...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.