详解在PHP的Yii框架中使用行为Behaviors的方法
2017-08-18 13:59
781 查看
这篇文章主要介绍了在PHP的Yii框架中使用行为Behaviors的方法,包括行为的绑定与解除等操作讲解,需要的朋友可以参考下
一个绑定了行为的类,表现起来是这样的:
?
上面的代码你不用全都看懂,虽然你可能已经用脚趾头猜到了这些代码的意思, 但这里你只需要记住行为中的属性和方法可以被所绑定的类像访问自身的属性和方法一样直接访问就OK了。 代码中, $myClass 是没有 property1 method() 成员的。这俩是 $myBehavior 的成员。 但是,通过 attachBehavior() 将行为绑定到对象之后, $myCalss 就好像练成了吸星大法、化功大法,表现的财大气粗,将别人的属性和方法都变成了自己的。
另外,从上面的代码中,你还要掌握使用行为的大致流程:
从 yii\base\Component 派生自己的类,以便使用行为;
从 yii\base\Behavior 派生自己的行为类,里面定义行为涉及到的属性、方法;
将Component和Behavior绑定起来;
像使用Component自身的属性和方法一样,尽情使用行为中定义的属性和方法。
使用行为,必须像前文描述的一样先把它附加到 yii\base\Component 类或其子类。一旦行为附加到组件,就可以直接使用它。
行为附加到组件后,可以通过组件访问一个行为的公共成员变量或 getter 和 setter 方法定义的属性:
?
如你所见,尽管 $component 未定义 prop1 和 foo() ,它们用起来也像组件自己定义的一样。
如果两个行为都定义了一样的属性或方法,并且它们都附加到同一个组件,那么首先附加上的行为在属性或方法被访问时有优先权。
附加行为到组件时的命名行为,可以使用这个名称来访问行为对象,如下所示:
?
也能获取附加到这个组件的所有行为:
?
移除行为
要移除行为,可以调用 yii\base\Component::detachBehavior() 方法用行为相关联的名字实现:
?
也可以移除全部行为:
?
一个绑定了行为的类,表现起来是这样的:
?
另外,从上面的代码中,你还要掌握使用行为的大致流程:
从 yii\base\Component 派生自己的类,以便使用行为;
从 yii\base\Behavior 派生自己的行为类,里面定义行为涉及到的属性、方法;
将Component和Behavior绑定起来;
像使用Component自身的属性和方法一样,尽情使用行为中定义的属性和方法。
使用行为,必须像前文描述的一样先把它附加到 yii\base\Component 类或其子类。一旦行为附加到组件,就可以直接使用它。
行为附加到组件后,可以通过组件访问一个行为的公共成员变量或 getter 和 setter 方法定义的属性:
?
如果两个行为都定义了一样的属性或方法,并且它们都附加到同一个组件,那么首先附加上的行为在属性或方法被访问时有优先权。
附加行为到组件时的命名行为,可以使用这个名称来访问行为对象,如下所示:
?
?
要移除行为,可以调用 yii\base\Component::detachBehavior() 方法用行为相关联的名字实现:
?
?
相关文章推荐
- 详解在PHP的Yii框架中使用行为Behaviors的方法
- 详解在PHP的Yii框架中使用行为Behaviors的方法
- 详解在PHP的Yii框架中使用行为Behaviors的方法
- 详解在PHP的Yii框架中使用行为Behaviors的方法
- 在PHP的Yii框架中使用行为Behaviors的方法
- PHP 基于Yii框架中使用smarty模板的方法详解
- PHP 基于Yii框架中使用smarty模板的方法详解
- 详解PHP的Yii框架中组件行为的属性注入和方法注入
- 详解PHP的Yii框架中组件行为的属性注入和方法注入
- PHP的Yii框架使用中的一些错误解决方法与建议
- PHP的Yii框架中行为的定义与绑定方法讲解
- PHP的Yii框架中移除组件所绑定的行为的方法
- 详解PHP的Yii框架中扩展的安装与使用
- 详解PHP的Yii框架中日志的相关配置及使用
- YII框架中使用memcache的方法详解
- Yii框架 Cookie的使用方法详解
- 详解PHP的Yii框架中日志的相关配置及使用
- PHP的Yii框架中创建视图和渲染视图的方法详解
- 详解PHP的Yii框架中扩展的安装与使用
- PHP的Yii框架中移除组件所绑定的行为的方法