服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

PHP Laravel中的Trait使用方法

2019-06-29 16:46laozhang PHP教程

在本篇文章里小编给各位分享了关于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教程PHP explode()函数用法讲解

    PHP explode()函数用法讲解

    今天小编就为大家分享一篇关于PHP explode()函数用法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册2002019-06-13
  • PHP教程浅谈PHP封装CURL

    浅谈PHP封装CURL

    这篇文章主要介绍了PHP如何封装CURL,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    小狗最阳光1532019-06-05
  • PHP教程使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    这篇文章主要介绍了使用PHPUnit进行单元测试并生成代码覆盖率报告的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    big_cat1992019-06-04
  • PHP教程PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数,需要的朋友可以参考下。...

    脚本之家3992019-05-29
  • PHP教程PHP-FPM 的管理和配置详解

    PHP-FPM 的管理和配置详解

    这篇文章主要介绍了PHP-FPM 的管理和配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Donne2842019-06-12
  • PHP教程php原生数据库分页的代码实例

    php原生数据库分页的代码实例

    在本篇内容中小编给大家分享了关于php原生数据库分页的代码实例的简单介绍,需要的朋友们跟着学习下。...

    laozhang2142019-06-12
  • PHP教程PHP的PDO大对象(LOBs)

    PHP的PDO大对象(LOBs)

    今天小编就为大家分享一篇关于PHP的PDO大对象(LOBs),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册2212019-06-27
  • PHP教程PHP的PDO连接讲解

    PHP的PDO连接讲解

    今天小编就为大家分享一篇关于PHP的PDO连接讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册4512019-06-28