Make a callback run when a dummy object leaves the scope.

v4.0.0 2022-07-08 22:48 UTC

This package is auto-updated.

Last update: 2024-03-18 04:59:01 UTC


Latest Stable Version License


The ScopedCallback class allows for running a function after the instance goes out of scope. It can be useful for making sure teardown or cleanup functions run even if exceptions are thrown. It also makes for a cleaner API for developers, by not requiring the callback to be called manually each time.

Additional documentation about the library can be found on


use Wikimedia\ScopedCallback;
$sc = new ScopedCallback( [ $this, 'teardown' ] );
// Even if this throws an exception, the callback will run
// or it'll run at the end of the function
// If you want to manually call the callback
ScopedCallback::consume( $sc );
// or
unset( $sc );
// If you want to prevent it from being called
ScopedCallback::cancel( $sc );

Running tests

composer install --prefer-dist
composer test