对象工具
来源:互联网 发布:中兴网络机顶盒怎么样? 编辑:程序博客网 时间:2024/05/21 21:45
在追踪Yii2源码的时候,发现了这个PHP新特性Traits
,之前一直觉得PHP不能多重继承是很惆怅的事情,现在看来是自己孤陋寡闻了。好好研读了这个特性的使用,并做了实例,记录一下。 下面PHP手册里对该特性的描述:
自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。
Trait 和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。
----PHP手册
百度了一下traits
(又显得寡闻了);结果是:特性、显著特点。也就用traits定义的类,里面的方法都use
它的类中特有的方法。
namespace common\service;/** * 删除的公共方法 * @author Jack */trait DeleteService { /** * 通过主键删除 * @param int $id * @return int | boolean */ public static function deleteByPk( $id ) { $model = static::find($id); return $model->delete(); } /** * 批量删除 * @param string $condition * @param array $params */ public static function deleteAll( $condition = '', $params = [] ) { return static::deleteAll( $condition = '', $params = [] ); }}
定义一个用户操作的类,此类须要实现IUser接口定义方法,默认继承User模型,有删除、更新的特性
<?phpnamespace common\service;use common\service\IUser;use common\service\DeleteService;use common\service\UpdateService;/** * @author Jack * from www.aipanshi.com */class UserService extends \models\User implements IUser{ use DeleteService, UpdateService; }
0 0
- 对象工具
- Json对象工具类
- 对象工具类
- 对象工具类
- 图片对象转换工具
- 面向对象的工具
- 数组工具对象建立
- MyObjectUtil对象工具类
- js工具-合并对象
- 面向对象-数组工具
- thymeleaf自定义工具对象
- 面向对象的理论工具
- plsql工具比较用户对象
- gobject 模板对象生成工具
- AutoMapper对象映射工具
- plsql工具比较用户对象
- jquery-工具-数组对象操作
- PostgreSQL对象重组工具【pg_reorg】
- HDU2896,ac自动机模板题
- shell是一个用户与内核的交互程序
- 第五次作业
- java版本CRC16
- Html中行内元素有哪些?块级元素有哪些?
- 对象工具
- Qt学习笔记 数据类型转换
- 单例的几种写法
- 爱因斯坦犯了什么错?
- mysql 查询数据库中第n大数据的值
- 剑指offer 36. 数组中的逆序对
- (git简单教程)使用git命令上传本地项目到github项目
- IntelliJ IDEA 提交代码到 GitHub
- SNMP协议详解<二>