济南PHP培训
济南市达内教育培训学校

17156168575

热门课程

在Yii框架中使用Behaviors的方法

  • 时间:2016-11-11
  • 发布:济南达内教学部
  • 来源:济南达内教学部

下面的代码不用全都看懂,虽然可能已经用脚趾头猜到了这些代码的意思, 但这里济南php培训班小编建议只需要记住行为中的属性和方法可以被所绑定的类像访问自身的属性和方法一样直接访问就OK了。 代码中, $myClass 是没有 property1 method() 成员的。这俩是 $myBehavior 的成员。   // Step 1: 定义一个将绑定行为的类

class MyClass extends yii\base\Component

{

// 空的

}

// Step 2: 定义一个行为类,他将绑定到MyClass上

class MyBehavior extends yii\base\Behavior

{

// 行为的一个方法

public function method1()

{

return 'Method in MyBehavior is called.';

}

}

$myClass = new MyClass();

$myBehavior = new MyBehavior();

// 行为的一个属性

public $property1 = 'This is property in MyBehavior.';

// Step 3: 将行为绑定到类上

$myClass->attachBehavior('myBehavior', $myBehavior);

// Step 4: 访问行为中的属性和方法,就和访问类自身的属性和方法一样

通过 attachBehavior() 将行为绑定到对象之后, $myCalss 就好像练成了吸星大法、化功大法,表现的财大气粗,将别人的属性和方法都变成了自己的。一个绑定了行为的类,表现起来是这样的:

echo $myClass->property1;

echo $myClass->method1();

另外,从上面的代码中,你还要掌握使用行为的大致流程:

从 yii\base\Component 派生自己的类,以便使用行为;

从 yii\base\Behavior 派生自己的行为类,里面定义行为涉及到的属性、方法;

将Component和Behavior绑定起来;

使用行为,必须像前文描述的一样先把它附加到 yii\base\Component 类或其子类。一旦行为附加到组件,就可以直接使用它。

像使用Component自身的属性和方法一样,尽情使用行为中定义的属性和方法。

行为附加到组件后,可以通过组件访问一个行为的公共成员变量或 getter 和 setter 方法定义的属性:

附加行为到组件时的命名行为,可以使用这个名称来访问行为对象,如下所示:

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

echo $component->prop1;

// "prop1" 是定义在行为类的属性

$component->prop1 = $value;

类似地也可以调用行为的公共方法:

// foo() 是定义在行为类的公共方法

$component->foo();

济南php培训班小编尽管 $component 未定义 prop1 和 foo() ,它们用起来也像组件自己定义的一样。

也能获取附加到这个组件的所有行为:

如果两个行为都定义了一样的属性或方法,并且它们都附加到同一个组件,那么首先附加上的行为在属性或方法被访问时有优先权。

$behaviors = $component->getBehaviors();

移除行为

也可以移除全部行为:

$component->detachBehaviors();

要移除行为,可以调用 yii\base\Component::detachBehavior() 方法用行为相关联的名字实现:

$component->detachBehavior('myBehavior1');

上一篇:PHP把stdClass Object转array的三个方法
下一篇:达内PHP学员入职京东商城,获年薪10万

马上预约七天免费体验课

姓名:

电话:

PHP运行环境一键安装包

PHP中的mb_convert_encoding与iconv函数介绍

PHP输入流php://input

session的同步

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊