Defer
Namespaces
Interfaces
This interface MUST be implemented by any class that reports exceptions from deferred callbacks.
Classes
This class MUST be used to manage deferred callbacks that SHALL be executed at the end of a scope.
Functions
Creates a new Defer instance, optionally registering a callback immediately.
Executes a callback within a controlled scope, ensuring resources are released at the end.
Executes a callback within a deferred scope, ensuring all registered callbacks are executed at the end.
Creates a new Defer instance, optionally registering a callback immediately.
defer([
callable|null
$callback = null],
mixed
...$arguments) : DeferInterface
Description
This function MUST return a DeferInterface implementation. If a callback is provided, it SHALL be registered.
Parameters
$callback
:
callable|null
=
null
Description
the callback to register (optional)
$arguments
:
mixed
Description
Arguments for the callback.
Return values
Description
the Defer instance
Executes a callback within a controlled scope, ensuring resources are released at the end.
using(
callable
$factory,
callable
$callback) : mixed
Description
This function MUST create a Defer instance, pass it to the factory, and execute the callback. The Defer instance SHALL be unset after execution.
Parameters
$factory
:
callable
Description
a function that receives the Defer and returns the resource
$callback
:
callable
Description
a function that receives the resource and executes the desired logic
Return values
Description
the return value of the callback
Executes a callback within a deferred scope, ensuring all registered callbacks are executed at the end.
scope(
callable
$callback) : mixed
Description
This function MUST create a Defer instance, pass it to the callback, and unset it after execution.
Parameters
$callback
:
callable
Description
a function that receives the Defer and executes the desired logic
Return values
Description
the return value of the callback