Package Data | |
---|---|
Maintainer Username: | zachflower |
Maintainer Contact: | zach@zacharyflower.com (Zachary Flower) |
Package Create Date: | 2017-02-06 |
Package Last Update: | 2020-01-28 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-16 15:03:23 |
Package Statistics | |
---|---|
Total Downloads: | 244,665 |
Monthly Downloads: | 2,724 |
Daily Downloads: | 110 |
Total Stars: | 24 |
Total Watchers: | 4 |
Total Forks: | 1 |
Total Open Issues: | 0 |
Dynamically disable/enable Laravel's Eloquent model observers. This library provides the ability to temporarily disable observable events for Eloquent models. For example, temporarily disable observers that kick off emails, push notifications, or queued calculations when performing a large number of database inserts or updates.
Install using composer:
composer require zachflower/ignorable-observers
To give an Eloquent model the ability to temporarily ignore observers, simply add the IgnorableObservers
trait:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use IgnorableObservers\IgnorableObservers;
class ExampleModel extends Model {
use IgnorableObservers;
}
Then, call the ignoreObservableEvents()
static method to ignore all observers for that model:
ExampleModel::ignoreObservableEvents();
The ignoreObservableEvents()
method also accepts an array of observers to be ignored. For example, the following line would ignore only the saved
and created
observers:
ExampleModel::ignoreObservableEvents(['saved', 'created']);
To stop ignoring a model's observers, call the unignoreObservableEvents()
static method:
ExampleModel::unignoreObservableEvents();
The unignoreObservableEvents()
method also accepts an array of observers to unignore, giving you total control over which observers to enable and disable:
ExampleModel::unignoreObservableEvents(['saved']);
The following example ignores any saved
and created
observers for the ExampleModel
, inserts 100 rows into the database, and then "unignores" those observers when the operation is completed:
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 is an open-sourced library licensed under the MIT license.