dbw = $dbw; $this->fname = $fname; if ( !is_callable( $callback ) ) { throw new InvalidArgumentException( 'Not a valid callback/closure!' ); } $this->callback = $callback; } public function doUpdate() { $this->dbw->doAtomicSection( $this->fname, $this->callback ); } }