PHPLaravel中的Trait是什么

PHPLaravel中的Trait是什么

内容导读

收集整理的这篇技术教程文章主要介绍了PHPLaravel中的Trait是什么,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1938字,纯文字阅读大概需要3分钟

内容图文

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

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 AppHttpTraitsBrandsTrait;class YourController extends Controller {

use BrandsTrait;

public function addProduct() {



$brands = $this->brandsAll();

}}

这是我的BrandsTrait.php

<?phpnamespace AppHttpTraits;use AppBrand;trait BrandsTrait {

public function brandsAll() {



// 从品牌表中获取所有品牌



$brands = Brand::all();



return $brands;

}}

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

内容总结

以上是为您收集整理的PHPLaravel中的Trait是什么全部内容,希望文章能够帮你解决PHPLaravel中的Trait是什么所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com