darkghosthunter / laratraits
此包已被放弃且不再维护。未建议替代包。
Laratraits是一个包含了许多有用的特性和类,可以在您的控制器、服务提供者、命令等中使用。看看吧!
v3.1.0
2021-08-26 00:21 UTC
Requires
- php: ^7.4||^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^8.0
Requires (Dev)
- mockery/mockery: ^1.4.3
- orchestra/testbench: ^6.19
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-03-26 06:31:02 UTC
README
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
:允许对象实例执行when
和unless
逻辑。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
:使用自包含的规则验证传入的数据。
有用类
Enumerable
:从列表中列出和控制状态。用于枚举类型转换。
模型
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
附加到一个公共静态方法即可。
中间件
CacheStaticResponse
:缓存静态响应,避免在给定时间内执行控制器逻辑。ShareAuthenticatedUser
:在所有视图中共享已认证的用户。ValidateConsumableSignature
:使签名路由只工作一次,除非发生客户端或服务器错误。
Blade
RegistersFileDirective
:使用PHP文件内容轻松注册指令。
迁移
PublishesMigrations
:允许包自动将迁移注册为可发布的资源。
缺少一个特质吗?
您可以对您的建议提出一个问题。请考虑逻辑必须包含在特质中,或者使用辅助类以避免将多个方法污染类。优先考虑带有测试的PR。
许可证
本软件包是开源软件,许可协议为MIT。
Laravel是Taylor Otwell的商标。版权所有 © 2011-2020 Laravel LLC。