php调用trait方法,PHP Laravel中的Trait使用方法

你的名字 2023-01-18 11:22 222阅读 0赞

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

namespace App\Http\Traits;use App\Brand;

trait BrandsTrait {

public function brandsAll() {

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

$brands = Brand::all(); return $brands;

}

}

发表评论

表情:
评论列表 (有 0 条评论,222人围观)

还没有评论,来说两句吧...

相关阅读

    相关 php Traits 详解

    PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。php的Traits和Go语言的组合功能有点类似, 通过在类中使用u

    相关 PHPTrait 特性

    Trait是在PHP5.4中加入的,它既不是接口也不是类。主要是为了解决单继承语言的限制。是PHP多重继承的一种解决方案。例如,需要同时继承两个 Abstract Class,

    相关 PHPTrait详解

    > php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性 用法:通过在类中使用use 关键字,声明要组合

    相关 PHP Trait 使用指南(life)

    通过更好地组织代码和代码复用来最大程度地减少代码重复是面向对象编程的重要目标。但是在 PHP 中,由于使用单一继承模型的局限性,有些时候要做到这些可能会比较困难。您可能有一些要

    相关 PHPTrait详解

    > php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性 用法:通过在类中使用use 关键字,声明要组合

    相关 laravel Trait

    Trait简介 `Trait`是`PHP 5.4`引入的新概念,看上去既像类又像接口,其实都不是,`Trait`可以看做类的部分实现,可以混入一个或多个现有的`PHP