zoukankan      html  css  js  c++  java
  • 如何在PHP框架里把Traits使用起来

    我们都知道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

     然后就可以用了

  • 相关阅读:
    段错误诊断!
    kissthank
    c实现面向对象编程(3)
    字符串转换成数字以及注意事项
    【Java并发编程实战】-----“J.U.C”:CLH队列锁
    c编程:僵尸吃大脑
    展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例
    最优化学习笔记(三)最速下降法
    maven学习
    ASP.NET MVC 入门4、Controller与Action
  • 原文地址:https://www.cnblogs.com/heyue0117/p/12074121.html
Copyright © 2011-2022 走看看