envant / fireable
基于属性变化触发事件的一种优雅方式
v1.0.11
2023-03-08 22:51 UTC
Requires
- php: ^7.2|^8
- illuminate/database: ^5.8|^6|^7|^8|^9|^10.0
- illuminate/support: ^5.8|^6|^7|^8|^9|^10.0
Requires (Dev)
- mockery/mockery: ^1.2
- orchestra/testbench: ^3.8 || ^4 || ^5 || ^6 || ^7|^8.0
- phpunit/phpunit: ^7.5 || ^8 || ^9.5
- sempro/phpunit-pretty-print: ^1.1
README
基于属性变化触发事件的一种优雅方式。
安装
通过Composer安装包
$ composer require envant/fireable
用法
- 将
FireableAttributes
特质添加到您的模型中 - 通过模型上的
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以获取详细信息以及待办事项列表。
安全性
如果您发现任何与安全性相关的问题,请通过作者电子邮件而不是使用问题跟踪器。
鸣谢
许可
许可。请参阅许可文件以获取更多信息。