X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Flibs%2FScopedCallback.php;h=96075aad66560c9299e169db51983260b8e816a7;hp=631b6519fe68c101aa684a91df268e37dd2c1f46;hb=e3bd13db0c285f312e31bb1b7271af4628cca80c;hpb=2117c11cbc53911f3a34fbd15d706367515ef7e1 diff --git a/includes/libs/ScopedCallback.php b/includes/libs/ScopedCallback.php index 631b6519fe..96075aad66 100644 --- a/includes/libs/ScopedCallback.php +++ b/includes/libs/ScopedCallback.php @@ -28,16 +28,20 @@ class ScopedCallback { /** @var callable */ protected $callback; + /** @var array */ + protected $params; /** - * @param callable $callback + * @param callable|null $callback + * @param array $params Callback arguments (since 1.25) * @throws Exception */ - public function __construct( $callback ) { - if ( !is_callable( $callback ) ) { + public function __construct( $callback, array $params = [] ) { + if ( $callback !== null && !is_callable( $callback ) ) { throw new InvalidArgumentException( "Provided callback is not valid." ); } $this->callback = $callback; + $this->params = $params; } /** @@ -67,7 +71,7 @@ class ScopedCallback { */ function __destruct() { if ( $this->callback !== null ) { - call_user_func( $this->callback ); + call_user_func_array( $this->callback, $this->params ); } } }