/**
* Deferrable Update for closure/callback
*/
-class MWCallableUpdate implements DeferrableUpdate {
- /** @var Closure|callable */
+class MWCallableUpdate implements DeferrableUpdate, DeferrableCallback {
+ /** @var callable */
private $callback;
+ /** @var string */
+ private $fname;
/**
* @param callable $callback
- * @throws InvalidArgumentException
+ * @param string $fname Calling method
*/
- public function __construct( $callback ) {
- if ( !is_callable( $callback ) ) {
- throw new InvalidArgumentException( 'Not a valid callback/closure!' );
- }
+ public function __construct( callable $callback, $fname = 'unknown' ) {
$this->callback = $callback;
+ $this->fname = $fname;
}
public function doUpdate() {
call_user_func( $this->callback );
}
+
+ public function getOrigin() {
+ return $this->fname;
+ }
}