/**
  * Add a local account record for the given wiki to the central database.
  * @param $wikiID String
  * @param $method String
  * @param $sendToRC bool
  *
  * Prerequisites:
  * - completed migration state
  */
 public function attach($wikiID, $method = 'new', $sendToRC = true)
 {
     $dbw = self::getCentralDB();
     $dbw->begin(__METHOD__);
     $dbw->insert('localuser', array('lu_wiki' => $wikiID, 'lu_name' => $this->mName, 'lu_attached_timestamp' => $dbw->timestamp(), 'lu_attached_method' => $method), __METHOD__, array('IGNORE'));
     $success = $dbw->affectedRows() === 1;
     $dbw->commit(__METHOD__);
     if ($wikiID === wfWikiID()) {
         $this->resetState();
     }
     $this->invalidateCache();
     if (!$success) {
         wfDebugLog('CentralAuth', "Race condition? Already attached {$this->mName}@{$wikiID}, just tried by '{$method}'");
         return;
     }
     wfDebugLog('CentralAuth', "Attaching local user {$this->mName}@{$wikiID} by '{$method}'");
     if ($dbw->writesOrCallbacksPending()) {
         wfDebugLog('CentralAuth-Bug39996', __METHOD__ . ": Database::writesOrCallbacksPending() returns " . "true after successful attach");
     }
     if ($sendToRC) {
         global $wgCentralAuthRC;
         $userpage = Title::makeTitleSafe(NS_USER, $this->mName);
         foreach ($wgCentralAuthRC as $rc) {
             /** @var CARCFeedFormatter $formatter */
             $formatter = new $rc['formatter']();
             /** @var RCFeedEngine $engine */
             $engine = RecentChange::getEngine($rc['uri']);
             $engine->send($rc, $formatter->getLine($userpage, $wikiID));
         }
     }
 }