Merge "registration: Only allow one extension to set a specific config setting"
[lhc/web/wiklou.git] / includes / deferred / TransactionRoundDefiningUpdate.php
1 <?php
2
3 /**
4 * Deferrable update for closure/callback updates that need LBFactory and Database
5 * to be outside any active transaction round.
6 *
7 * @since 1.31
8 */
9 class TransactionRoundDefiningUpdate implements DeferrableUpdate, DeferrableCallback {
10 /** @var callable|null */
11 private $callback;
12 /** @var string */
13 private $fname;
14
15 /**
16 * @param callable $callback
17 * @param string $fname Calling method
18 */
19 public function __construct( callable $callback, $fname = 'unknown' ) {
20 $this->callback = $callback;
21 $this->fname = $fname;
22 }
23
24 public function doUpdate() {
25 call_user_func( $this->callback );
26 }
27
28 public function getOrigin() {
29 return $this->fname;
30 }
31 }