0

0

thinkPHP5.0框架引入Traits功能的实例代码分享

黄舟

黄舟

发布时间:2017-03-18 09:11:22

|

1833人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了thinkphp5.0框架引入traits功能,结合实例形式分析了traits的概念、功能及thinkphp5.0中traits功能的使用方法,需要的朋友可以参考下

本文实例讲述了thinkPHP5.0框架引入Traits功能。分享给大家供大家参考,具体如下:

ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题。

Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。

但由于PHP5.4版本不支持trait的自动加载,因此如果是PHP5.4版本,必须手动导入trait类库,系统提供了一个助手函数load_trait,用于自动加载trait类库,例如,可以这样正确引入trait类库。

立即学习PHP免费学习笔记(深入)”;

namespace app\index\controller;
load_trait('controller/Jump'); // 引入traits\controller\Jump
class index
{
   use \traits\controller\Jump;
   public function index()
   {
     $this->assign('name','value');
     $this->show('index');
   }
}

如果你的PHP版本大于5.5的话,则可以省略load_trait函数引入trait。

namespace app\index\controller;
class index
{
   use \traits\controller\Jump;
   public function index()
   {
   }
}

可以支持同时引入多个trait类库,例如:

namespace app\index\controller;
load_trait('controller/Other');
load_trait('controller/Jump');
class index
{
   use \traits\controller\Other;
   use \traits\controller\Jump;
   public function index()
   {
   }
}

或者使用

Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8
Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8

Modoer 是一款以本地分享,多功能的点评网站管理系统。采用 PHP+MYSQL 开发设计,开放全部源代码。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱,不局限于商铺类点评,真正实现了多类型的点评,可以让您的网站点评任何事与物,同时增加产品模块,也更好的网站产品在网站上展示。Modoer点评系统 2.5 Build 20110710更新列表1.同步 旗舰版系统框架2.增加 限制图片

下载
namespace app\index\controller;
load_trait('controller/Other');
load_trait('controller/Jump');
class index
{
   use \traits\controller\Other,\traits\controller\Jump;
   public function index()
   {
   }
}

系统提供了一些封装好的trait类库,主要是用于控制器模型类的扩展。这些系统内置的trait类库的根命名空间采用traits而不是trait,是因为避免和系统的关键字冲突。

trait 方式引入的类库需要注意优先级,从基类继承的成员被 trait 插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。

trait 类中不支持定义类的常量,在 trait 中定义的属性将不能在当前类中或者继承的类中重新定义。

冲突的解决

我们可以在一个类库中引入多个trait类库,如果两个 trait 都定义了一个同名的方法,如果没有明确解决冲突将会产生一个致命错误。

为了解决多个 trait 在同一个类中的命名冲突,需要使用 insteadof 操作符来明确指定使用冲突方法中的哪一个。

以上方式仅允许排除掉其它方法,as 操作符可以将其中一个冲突的方法以另一个名称来引入。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP5基础讲解视频教程
ThinkPHP5基础讲解视频教程

共38课时 | 13.6万人学习

TP5.0 MVC入门视频教程
TP5.0 MVC入门视频教程

共9课时 | 7.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号