• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP Laravel中的Trait使用方法

    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 中使用 Traits的方法
    • Laravel中Trait的用法实例详解
    • laravel下trait的使用代码实例详解
    上一篇:PHP合并两个或多个数组的方法
    下一篇:PHP删除字符串中非字母数字字符方法总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP Laravel中的Trait使用方法 PHP,Laravel,中的,Trait,使用方法,