更多内容: http://blog.yuhai.win
参考地址:
1、http://www.digpage.com/behavior.html
1、使用行为可以在不修改现有类的情况下,对类的功能进行扩充
2、yii中的行为,其实是yii\base\Behaior 类的实例,只要将一个Behavior实例绑定到任意的yii\base\Component 实例上,这个Component 就可以拥有该Behavior 所定义的属性和方法了。
3、使用行为
// 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();
a、 从yii\base\Component 派生自己的类,以便使用行为;
b、从yii\base\Behavior 派生自己的行为类,里面定义行为设计hi到的属性和方法;
c、将Component和Behavior绑定起来
d、像使用Component自身的属性和方法一样名,使用行为中定义的方法和属性。
4、行为的绑定与解除
Behavior 中行为的绑定与解除分别对应着attach() 和detach()