* @since 1.19
*/
+ use MediaWiki\Linker\LinkTarget;
+ use MediaWiki\User\UserIdentity;
use Wikimedia\Rdbms\IDatabase;
/**
/** @var int A rev id associated to the log entry */
protected $revId = 0;
- /** @var array Change tags add to the log entry */
- protected $tags = null;
+ /** @var string[] Change tags add to the log entry */
+ protected $tags = [];
/** @var int Deletion state of the log entry */
protected $deleted;
* Set the user that performed the action being logged.
*
* @since 1.19
- * @param User $performer
+ * @param UserIdentity $performer
*/
- public function setPerformer( User $performer ) {
- $this->performer = $performer;
+ public function setPerformer( UserIdentity $performer ) {
+ $this->performer = User::newFromIdentity( $performer );
}
/**
* Set the title of the object changed.
*
* @since 1.19
- * @param Title $target
+ * @param LinkTarget $target
*/
- public function setTarget( Title $target ) {
- $this->target = $target;
+ public function setTarget( LinkTarget $target ) {
+ $this->target = Title::newFromLinkTarget( $target );
}
/**
/**
* Set change tags for the log entry.
*
+ * Passing `null` means the same as empty array,
+ * for compatibility with WikiPage::doUpdateRestrictions().
+ *
* @since 1.27
- * @param string|string[] $tags
+ * @param string|string[]|null $tags
*/
public function setTags( $tags ) {
- if ( is_string( $tags ) ) {
+ if ( $tags === null ) {
+ $tags = [];
+ } elseif ( is_string( $tags ) ) {
$tags = [ $tags ];
}
$this->tags = $tags;
if ( $to === 'rc' || $to === 'rcandudp' ) {
// save RC, passing tags so they are applied there
- $tags = $this->getTags();
- if ( is_null( $tags ) ) {
- $tags = [];
- }
- $rc->addTags( $tags );
+ $rc->addTags( $this->getTags() );
$rc->save( $rc::SEND_NONE );
}
/**
* @since 1.27
- * @return array
+ * @return string[]
*/
public function getTags() {
return $this->tags;