ludo237/laravel-traits

一组有用的 Laravel 特性

v5.0.0 2024-03-12 16:30 UTC

README

一组对 Laravel 有用的特性。

为什么

Laravel 是一个优秀的框架,Eloquent 在 ActiveRecord ORM 方面堪称艺术品,但它缺乏一些有用的特性。我决定通过一系列特性来集成这些特性。

什么是特性?

在 PHP 中,特性是一种在单一继承语言(如 PHP)中重复使用代码的机制。特性旨在通过允许开发者在不同的类层次结构中的多个独立类中自由重复使用方法集来减少单一继承的限制。特性和类的组合语义被定义为降低复杂性,并避免与多重继承和混合物相关的典型问题。[来源](https://php.ac.cn/manual/en/language.oop5.traits.php)

如何使用此包

很简单,只需从 composer 中获取它 composer require ludo237/laravel-traits 即可完成。现在您可以在您的 eloquent 模型或需要的地方使用这些特性。

包含内容

随着时间的推移,事情可能会改变,目前的特性包括:

  • Bannable 将逻辑注入模型以与 banned_at 列交互。
  • CanBeActivate 通过时间戳列向模型添加逻辑以激活/停用它。
  • ExposeTableProperties 允许模型公开公开表名、主键名称及其类型。
  • HasSlug 自动为模型创建 slug 列背后的逻辑。
  • InteractsWithApi 自动设置当前模型的 api_key,遵循 Laravel 标准。
  • OwnedByUser 自动将当前模型设置为属于 User 模型。
  • Benchmarkable 开始/停止计时器以基准 Artisan 命令。

如何贡献

请参阅贡献文件以获取更多信息。