PHP Laravel中的Trait使用方法
时间:2022-07-27
本文章向大家介绍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 AppHttpTraitsBrandsTrait;
class YourController extends Controller {
use BrandsTrait;
public function addProduct() {
$brands = $this- brandsAll();
}
}
这是我的BrandsTrait.php
<?php
namespace AppHttpTraits;use AppBrand;
trait BrandsTrait {
public function brandsAll() {
// 从品牌表中获取所有品牌
$brands = Brand::all(); return $brands;
}
}
- java之log4j的配置
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
- scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类
- 使用jQuery封装实用函数
- scala 学习笔记(05) OOP(中)灵活的trait
- Web Fundamentsals学习1-Multiple-Screen-Site
- Vagrant使用
- java 中的异步回调
- 澳大利亚域名管理机构多年敲竹杠?
- ASP.NET中使用HttpWebRequest调用WCF
- scala 学习笔记(06) OOP(下)多重继承 及 AOP
- Angular企业级开发(4)-ngResource和REST介绍
- CSS魔法堂:"那不是bug,是你不懂我!" by inline-block
- scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- python课题:正弦函数 求圆形的阴影面积
- 华为学习笔记(SSM框架报错篇)
- Python通讯录作业
- 振兴杯试题分析:制作简单的登陆页(一)
- Python作业:BMI评估
- Python笔记
- JavaScript 技术篇-chrome利用ClipboardEvent写入剪切板,没成功的你就差一步
- 搭建一个高可用负载均衡的集群架构(第三部分)
- C语言学习笔记
- JavaScript 技术篇-js获取窗口标题名,获取页面URL地址
- Pyhon海龟绘制木叶村徽章
- MIT大神写给女神的Q版Python画图库—Cutecharts【技术创作101训练营】
- JavaScript 技术篇-js创建dom节点,并设置属性
- 容器中的数据管理
- Java基础 方法