envant / fireable

基于属性变化触发事件的一种优雅方式

v1.0.11 2023-03-08 22:51 UTC

This package is auto-updated.

Last update: 2024-09-09 02:08:43 UTC


README

Latest Version on Packagist StyleCI Build Status Total Downloads

基于属性变化触发事件的一种优雅方式。

安装

通过Composer安装包

$ composer require envant/fireable

用法

  1. FireableAttributes特质添加到您的模型中
  2. 通过模型上的protected $fireableAttributes属性定义具有指定事件的属性

示例

假设我们需要在特定模型属性更新时触发特定事件。

例如,您需要在用户获得“已批准”状态时通知用户。我们不必手动观察模型的“脏”属性并触发事件,而可以通过将指定事件分配给属性或属性的特定值来更优雅地完成。

class User extends Authenticatable
{
    use FireableAttributes;

    protected $fireableAttributes = [
        'status' => [
            'approved' => UserApproved::class,
            'rejected' => UserRejected::class,
        ],
    ];
}

此外,您可能不需要跟踪某些值,因此可以直接将事件分配给属性。因此,在下面的示例中,每次用户的电子邮件更改时,都会触发适当的事件。

class User extends Authenticatable
{
    use FireableAttributes;

    protected $fireableAttributes = [
        'email' => EmailUpdated::class,
    ];
}

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅contributing.md以获取详细信息以及待办事项列表。

安全性

如果您发现任何与安全性相关的问题,请通过作者电子邮件而不是使用问题跟踪器。

鸣谢

许可

许可。请参阅许可文件以获取更多信息。