row->rc_logid; } protected function getRawParameters() { return $this->row->rc_params; } public function getAssociatedRevId() { return $this->row->rc_this_oldid; } public function getType() { return $this->row->rc_log_type; } public function getSubtype() { return $this->row->rc_log_action; } public function getPerformerIdentity(): UserIdentity { if ( !$this->performer ) { $actorStore = MediaWikiServices::getInstance()->getActorStore(); $userFactory = MediaWikiServices::getInstance()->getUserFactory(); if ( isset( $this->row->rc_actor ) ) { try { $this->performer = $actorStore->newActorFromRowFields( $this->row->rc_user ?? 0, $this->row->rc_user_text, $this->row->rc_actor ); } catch ( InvalidArgumentException $e ) { $this->performer = $actorStore->getUnknownActor(); LoggerFactory::getInstance( 'logentry' )->warning( 'Failed to instantiate RC log entry performer', [ 'exception' => $e, 'log_id' => $this->getId() ] ); } } elseif ( isset( $this->row->rc_user ) ) { $this->performer = $userFactory->newFromId( $this->row->rc_user )->getUser(); } elseif ( isset( $this->row->rc_user_text ) ) { $user = $userFactory->newFromName( $this->row->rc_user_text ); if ( $user ) { $this->performer = $user->getUser(); } else { $this->performer = $actorStore->getUnknownActor(); LoggerFactory::getInstance( 'logentry' )->warning( 'Failed to instantiate RC log entry performer', [ 'rc_user_text' => $this->row->rc_user_text, 'log_id' => $this->getId() ] ); } } } return $this->performer; } public function getTarget() { $namespace = $this->row->rc_namespace; $page = $this->row->rc_title; return Title::makeTitle( $namespace, $page ); } public function getTimestamp() { return wfTimestamp( TS_MW, $this->row->rc_timestamp ); } public function getComment() { return CommentStore::getStore() // Legacy because the row may have used RecentChange::selectFields() ->getCommentLegacy( wfGetDB( DB_REPLICA ), 'rc_comment', $this->row )->text; } public function getDeleted() { return $this->row->rc_deleted; } }