详解在PHP的Yii框架中使用行为Behaviors的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-18 17:53:09 浏览: 评论:0
这篇文章主要介绍了在PHP的Yii框架中使用行为Behaviors的方法,包括行为的绑定与解除等操作讲解,需要的朋友可以参考下。
一个绑定了行为的类,表现起来是这样的:
- // 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();
Tags: Yii框架 Behaviors
相关文章
- ·详解PHP的Yii框架中扩展的安装与使用(2019-10-20)
- ·PHP的Yii框架中过滤器相关的使用总结(2019-10-31)
- ·简介PHP的Yii框架中缓存的一些高级用法(2019-10-31)
- ·深入解析PHP的Yii框架中的缓存功能(2019-11-05)
- ·PHP的Yii框架中创建视图和渲染视图的方法详解(2019-11-05)
- ·PHP的Yii框架中Model模型的学习教程(2019-11-05)
- ·详解PHP的Yii框架中的Controller控制器(2019-11-05)
- ·yii框架表单模型使用及以数组形式提交表单数据示例(2020-11-25)
- ·yii框架通过控制台命令创建定时任务示例(2020-11-25)
- ·yii框架配置默认controller和action示例(2020-11-25)
- ·在Yii框架中使用PHP模板引擎Twig的例子(2021-02-19)
- ·Yii框架登录流程分析(2021-05-02)
- ·Yii框架中memcache用法实例(2021-05-02)
- ·Yii框架form表单用法实例(2021-05-02)
- ·Yii框架在页面输出执行sql语句以方便调试的实现方法(2021-05-04)
- ·Yii框架调试心得--在页面输出执行sql语句(2021-05-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)