现在的位置: 首页 > 编程语言 > 正文

PHP Traits是什么?如何在laravel中使用traits

2020年01月11日 编程语言 ⁄ 共 887字 ⁄ 字号 评论关闭

  我们都知道PHP只能使用单一继承,这意味着一个类只能从另一个类继承。例如,您可能想从几个不同的类继承方法以防止代码重复。 PHP 5.4中添加了新的语言特性Traits,而且它在Laravel框架中得到了广泛使用。

  Traits是什么意思

  Trait是PHP等单一继承语言中的代码重用机制。 Trait的目的是减少单一继承语言的某些限制,并允许开发人员在不同类层次结构下的几个独立类中自由重用方法。

  Trait的语义组成和类定义在某种程度上降低了代码的复杂性,并避免了与多重继承和Mixins相关的一些典型问题。

  Trait与类非常相似,但其目的只是以更好和一致的方式聚合某些方法。 特性本身无法实例化。 除了传统的继承,它还可以水平组合行为,换句话说,类应用程序不需要继承

  PHP Traits是什么?

  Trait 是另一个类中包含的一组简单方法。Trait 就像一个抽象类,不能单独实例化。一个Trait 示例如下所示:

  然后,您可以在其他类中使用Trait,例如:

  现在,如果您想从这些类中创建新对象,您将发现它们都可以使用share()方法:

  Traits 如何工作?

  从上面的示例中可以看到,尽管Post和Comment本身没有定义方法,但是它们可以调用share()方法。 Trait 是一种在运行时“复制并粘贴”代码的方法。 这意味着将Trait复制到Post and Comment,因此在实例化新实例时,可以直接调用share()方法。 我定期检查我的代码以及如何构造新代码,以便在将来快速构建新功能并轻松启动新项目。

  那么,怎样在laravel中使用traits呢?

  首先我在项目的 Http 目录下创建一个Traits文件夹,并且新建了一个名叫 ActivityCouponTrait.php 的Trait文件,写了一个新用户注册的trait;去寻找UserBaseService里的addUser方法。

  接下来找UserBaseService里的addUser方法。

  这个时候我们就可以在controller里直接去调用了。首先要先引入上面的那个trait。

抱歉!评论已关闭.