zachflower / ignorable-observers
动态禁用/启用 Laravel 的 Eloquent 模型观察者
v0.2.0
2020-01-28 13:43 UTC
Requires
- illuminate/database: >=5.3
Requires (Dev)
- mockery/mockery: ^0.9
- phpunit/phpunit: ~4.0|~5.0
This package is auto-updated.
Last update: 2024-08-29 04:31:14 UTC
README
动态禁用/启用 Laravel 的 Eloquent 模型观察者。此库提供了暂时禁用 Eloquent 模型可观察事件的选项。例如,在执行大量数据库插入或更新操作时,暂时禁用启动电子邮件、推送通知或队列计算的观察者。
安装
使用 composer 安装
composer require zachflower/ignorable-observers
使用方法
为了使 Eloquent 模型能够暂时忽略观察者,只需添加 IgnorableObservers
特性
<?php namespace App; use Illuminate\Database\Eloquent\Model; use IgnorableObservers\IgnorableObservers; class ExampleModel extends Model { use IgnorableObservers; }
然后,调用 ignoreObservableEvents()
静态方法以忽略该模型的所有观察者
ExampleModel::ignoreObservableEvents();
ignoreObservableEvents()
方法也接受一个要忽略的观察者数组。例如,以下行将仅忽略 saved
和 created
观察者
ExampleModel::ignoreObservableEvents(['saved', 'created']);
要停止忽略模型观察者,请调用 unignoreObservableEvents()
静态方法
ExampleModel::unignoreObservableEvents();
unignoreObservableEvents()
方法也接受一个要取消忽略的观察者数组,从而让您完全控制要启用和禁用的观察者
ExampleModel::unignoreObservableEvents(['saved']);
示例
以下示例忽略 ExampleModel
的任何 saved
和 created
观察者,插入 100 行到数据库中,然后操作完成后取消忽略这些观察者
ExampleModel::ignoreObservableEvents('saved', 'created'); for ( $i = 0; $i <= 100; $i++ ) { ExampleModel::create([ 'data' => $i ]); } ExampleModel::unignoreObservableEvents();
贡献
- 分叉它
- 创建您的功能分支 (
git checkout -b my-new-feature
) - 提交您的更改 (
git commit -am 'Add some feature'
) - 推送到分支 (
git push origin my-new-feature
) - 创建新的 拉取请求
许可
Ignorable Observers 是一个在 MIT 许可下授权的开源库。