monooso/unobserve is a Laravel package for mute and unmute laravel observers at will..
It currently has 83 GitHub stars and 402.204 downloads on Packagist (latest version v6.1.1).
Install it with composer require monooso/unobserve.
Discover more Laravel packages by monooso
or browse all Laravel packages to compare alternatives.
Last updated
When testing Laravel applications, we frequently need to "silence" events, so as not to trigger additional side-effects. Laravel's Event::fake method is useful, but muting a specific model observer is still problematic.
Unobserve takes care of that, making it easy to mute and unmute an observer at will.
Select the appropriate version of Unobserve from the following table.
| Unobserve | Laravel | PHP |
|:-------|:-----------------|:------------|
| 1.x | ^5.8, ^6.0 | ^7.2 |
| 2.x | ^7.0 | ^7.2.5 |
| 3.x | ^8.0 | ^7.3.0 |
| 4.x | ^8.0 | ^8.0.0 |
| 5.x | ^9.0, ^10.0 | ^8.0.0 |
| 6.x | ^11.0, 12.0 | ^8.2.0 |
Install Unobserve using Composer:
composer require monooso/unobserve
First, add the CanMute trait to your observer class.
<?php
namespace App\Observers;
use Monooso\Unobserve\CanMute;
class UserObserver
{
use CanMute;
}
You can now mute and unmute your observer as needed:
UserObserver::mute();
UserObserver::unmute();
Mute all observer events:
UserObserver::mute();
Mute specific observer events:
UserObserver::mute('creating');
UserObserver::mute(['creating', 'created']);
Unobserve is very stable at this point. If you have any feature ideas please open an issue before doing any work.
Here's how to set everything up for local development on Unobserve [^development]:
[^development]: I'm assuming you know your way around PHP, and already have your environment set up.
composer install.composer install --working-dir=tools/php-cs-fixer..githooks by running git config core.hooksPath .githooks.Unobserve is open source software, released under the MIT license.