You won't find a better Self-Sealing Callable in this sector!
Self-Sealing Callable is a class that implements __invoke()
which can enable and disable itself. When registering shutdown functions in PHP it's not possible to unregister them. This class exists to be used in this case. By calling SelfSealingCallable->disable()
it will return false
when invoked, allowing retroactive disabling of the shutdown handler.
- PHP 8.1
composer require mensbeam/self-sealing-callable
It's pretty simple:
use MensBeam\SelfSealingCallable;
$callable = new SelfSealingCallable(fn() => 'ook');
$ook = $callable();
// 'ook'
$callable->disable();
$ook = $callable();
// false
$callable->enable();
$ook = $callable();
// 'ook'