• 技术文章 >后端开发 >php教程

    PHP Laravel中的Trait是什么

    藏色散人藏色散人2019-01-19 15:05:58原创2641
    PHP作为编程语言的一个问题是,您只能有单一继承。这意味着一个类只能从另一个类继承。例如,为了防止代码重复,最好从两个不同的类继承方法。在PHP 5.4中,添加了一种称为Traits的语言新特性,并在Laravel框架中广泛使用。

    php入门到就业线上直播课:进入学习

    Trait是一种在单继承语言(如PHP)中重用代码的机制。Trait旨在通过使开发人员能够在生活在不同类层次结构中的多个独立类中自由地重用方法集来减少单继承的某些限制。Traits和类组合的语义以降低复杂性的方式定义,并避免了与多重继承和Mixins相关的典型问题。

    Trait类似于类,但仅用于以细粒度和一致的方式对功能进行分组。无法自行实例化Trait。它是对传统继承的补充,可以实现行为的横向组合; 也就是说,类成员的应用程序不需要继承。

    什么是PHP Trait?

    Trait仅仅是您希望包含在另一个类中的一组方法。与抽象类一样,Trait不能自己实例化。

    Trait的一个例子可以是:

    trait SharePost {
     
      public function share($item)
      {
        return 'share this post';
      }
     
    }

    然后你可以把这个trait 包含在其他类中,就像这样:

    class Post {
     
      use SharePost;
     
    }
     
    class Comment {
     
      use SharePost;
     
    }

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

    $post = new Post;
    echo $post->share(''); 
     
    $comment = new Comment;
    echo $comment->share('');

    trait 如何运作?

    从上面的示例中可以看出,尽管没有定义该方法,但是对象Post和Comment对象都具有share()可用的方法。

    Trait基本上只是一种在运行时“复制和粘贴”代码的方法。

    这意味着Trait被复制到Post和Comment类中,因此当您实例化一个新实例时,share()方法代码将可用。

    我经常检查我的代码以及如何构建我的代码,以便可以快速完成未来的功能添加,并且新项目可以轻松扩展以前的想法。

    如何在laravel中使用trait ?

    我在我的Http目录中创建了一个Trait目录,其中有一个名为的TraitBrandsTrait.php

    use App\Http\Traits\BrandsTrait;
    class YourController extends Controller {
        use BrandsTrait;
        public function addProduct() {
            $brands = $this->brandsAll();
        }
    }

    这是我的BrandsTrait.php

    <?php
    namespace App\Http\Traits;use App\Brand;
    trait BrandsTrait {
        public function brandsAll() {
            // 从品牌表中获取所有品牌
            $brands = Brand::all();        return $brands;
        }
    }

    以上就是PHP Laravel中的Trait是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:PHP Laravel中的Trait
    上一篇:Laravel数据库操作Eloquent ORM方法小结(代码示例) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Laravel与CI框架中截取字符串函数_php技巧• 使用AngularJS和PHP的Laravel实现单页评论的方法_AngularJS• PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面_php技巧• 深入解析PHP的Laravel框架中的event事件操作_php技巧• 基于laravel制作APP接口(API)_php技巧
    1/1

    PHP中文网