咱们都知道PHP只能使用单一继承,这意味着一个类只能从另外一个类继承。 例如,您可能想从几个不一样的类继承方法以防止代码重复。 PHP 5.4中添加了新的语言特性Traits,并且它在Laravel框架中获得了普遍使用。
Traits 的定义php
Trait是PHP等单一继承语言中的代码重用机制。 Trait的目的是减小单一继承语言的某些限制,并容许开发人员在不一样类层次结构下的几个独立类中自由重用方法。laravel
Trait的语义组成和类定义在某种程度上下降了代码的复杂性,并避免了与多重继承和Mixins相关的一些典型问题。框架
Trait与类很是类似,但其目的只是以更好和一致的方式聚合某些方法。 特性自己没法实例化。 除了传统的继承,它还能够水平组合行为,换句话说,类应用程序不须要继承对象
PHP Traits是什么?
Trait 是另外一个类中包含的一组简单方法。Trait 就像一个抽象类,不能单独实例化。一个Trait 示例以下所示:blog
而后,您能够在其余类中使用Trait,例如:继承
如今,若是您想从这些类中建立新对象,您将发现它们均可以使用share()方法:开发
Traits 如何工做 ?it
从上面的示例中能够看到,尽管Post和Comment自己没有定义方法,可是它们能够调用share()方法。 Trait 是一种在运行时“复制并粘贴”代码的方法。 这意味着将Trait复制到Post and Comment,所以在实例化新实例时,能够直接调用share()方法。 我按期检查个人代码以及如何构造新代码,以便在未来快速构建新功能并轻松启动新项目。程序
那么,怎样在laravel中使用traits呢?
首先我在项目的 Http 目录下建立一个Traits文件夹,而且新建了一个名叫 ActivityCouponTrait.php 的Trait文件,写了一个新用户注册的trait;去寻找UserBaseService里的addUser方法。方法
接下来找UserBaseService里的addUser方法。
这个时候咱们就能够在controller里直接去调用了。首先要先引入上面的那个trait
而后就能够用了