darkghosthunter/laratraits

此包已被放弃且不再维护。未建议替代包。

Laratraits是一个包含了许多有用的特性和类,可以在您的控制器、服务提供者、命令等中使用。看看吧!

v3.1.0 2021-08-26 00:21 UTC

README

Paul Felberbauer - Unsplash #tM16SjCYy84

Latest Version on Packagist License Coverage Status Laravel Octane Compatible

Laratraits

Laratraits是一个包含有用特性和一些类别的Laravel包,可以在您的模型、控制器、服务提供者等中使用。看看吧!

要求

  • Laravel 8.0。
  • PHP 7.4, PHP 8.0 或更高版本。

安装

启动Composer即可。

composer require darkghosthunter/laratraits

此包不使用任何服务提供者。

使用方法

只需检查这些特性中的任何一个。每个特性和其他类都包含如何在第一行使用它们的简要说明。

如果您想使用一个,只需这样做

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use DarkGhostHunter\Laratraits\SavesToCache;
use DarkGhostHunter\Laratraits\Eloquent\UsesUuid;

class Post extends Model
{
    use UsesUuid;
    use SavesToCache;
    
    // ...
}

它包含的内容

在安装之前,请查看列表。如果您只使用一个,只需将其复制粘贴到您的项目中即可,没问题,因为每个特性和文件都包含MIT许可的副本。

只需记住,如果您需要复制粘贴,请更改命名空间

一切都有特性

  • Comparable:允许类或其属性与一系列值进行比较。
  • ConditionCalls:允许对象实例执行whenunless逻辑。
  • EnumerableStates:允许类实例具有单个允许的状态。
  • FiresItself:允许方便地触发事件。
  • Multitaps:使所有类方法链式,就像使用tap()一样,但永远如此。您可以使用->target或方法名称后附加AndUntap退出tap。
  • PipesThrough:允许类立即通过管道或到队列。
  • RegeneratesCache:存储对象的副本(或其部分),以避免与其他进程之间的数据竞争。
  • RendersFromMarkdown:解析Markdown文本并返回HTML的给定类属性。与Htmlable接口兼容。
  • SavesToCache:将对象(或其部分)保存到缓存。
  • SavesToSession:将对象(或其部分)保存到会话。
  • SavesToStorage:将对象(或其部分)保存到存储。
  • SecurelyJsonable:向Jsonable对象添加签名,在反序列化时进行检查,以防止篡改。
  • SendsToHttp:通过HTTP请求发送对象(或其部分)。
  • ShadowCall:根据条件允许调用下一个方法。
  • ThrottleMethods:在类中对给定方法进行节流。
  • Throws:如果给定条件为真或假,允许Throwable抛出自己。
  • ValidatesItself:使用自包含的规则验证传入的数据。

有用类

模型

  • ConditionFill:如果给定条件为真或假,填充属性。
  • DefaultColumns:向模型添加全局作用域DefaultColumns,只选择给定的默认列,除非在查询中手动重写。
  • FillsAttributes:通过每个方法名自动填充模型,如fillFooAttribute()
  • FromRequest:一行代码即可从HTTP请求中创建、构建或更新模型。
  • HasSlug:允许模型通过slug(如this-is-the-model)绑定到路由。必须在模型表中使用一个独立的slug列。
  • ModelType:对于具有不同“类型”但共享单个表的模型很有用,例如出版物:文章、帖子、笔记等。
  • NeighbourRecords:允许轻松地从给定的模型获取完整的“下一个”和“上一个”记录,而无需使用分页。
  • UsesUuid:自动在模型上填充UUID。附带可选的Eloquent查询构建器本地作用域。您可以覆盖UUID生成。

类型转换

  • CastEnumerable:允许Enumerable以整数或字符串的形式保存,并检索回Enumerable实例。
  • CastsRepository:允许将配置存储库字符串保存为JSON,并检索回配置存储库。
  • CastsBase64:允许将二进制值以BASE64格式保存到数据库中,并检索时作为二进制数据返回。

全局作用域

  • MacrosEloquent:当使用全局作用域时,自动将选择性的宏添加到Eloquent Builder实例本身,而不是全局,只需将macro附加到一个公共静态方法即可。

中间件

Blade

迁移

缺少一个特质吗?

您可以对您的建议提出一个问题。请考虑逻辑必须包含在特质中,或者使用辅助类以避免将多个方法污染类。优先考虑带有测试的PR。

许可证

本软件包是开源软件,许可协议为MIT。

Laravel是Taylor Otwell的商标。版权所有 © 2011-2020 Laravel LLC。