2013-09-03 20:43:40 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deferrable Update for closure/callback
|
|
|
|
|
*/
|
|
|
|
|
class MWCallableUpdate implements DeferrableUpdate {
|
|
|
|
|
/**
|
2014-04-19 06:43:31 +00:00
|
|
|
* @var Closure|callable
|
2013-09-03 20:43:40 +00:00
|
|
|
*/
|
|
|
|
|
private $callback;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param callable $callback
|
2013-11-20 18:43:39 +00:00
|
|
|
* @throws MWException
|
2013-09-03 20:43:40 +00:00
|
|
|
*/
|
|
|
|
|
public function __construct( $callback ) {
|
|
|
|
|
if ( !is_callable( $callback ) ) {
|
|
|
|
|
throw new MWException( 'Not a valid callback/closure!' );
|
|
|
|
|
}
|
|
|
|
|
$this->callback = $callback;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Run the update
|
|
|
|
|
*/
|
|
|
|
|
public function doUpdate() {
|
|
|
|
|
call_user_func( $this->callback );
|
|
|
|
|
}
|
|
|
|
|
}
|