return (string)$this->getName();
}
- public function __get( $name ) {
+ public function &__get( $name ) {
// A shortcut for $mRights deprecation phase
if ( $name === 'mRights' ) {
- return $this->getRights();
+ $copy = $this->getRights();
+ return $copy;
+ } elseif ( !property_exists( $this, $name ) ) {
+ // T227688 - do not break $u->foo['bar'] = 1
+ wfLogWarning( 'tried to get non-existent property' );
+ $this->$name = null;
+ return $this->$name;
+ } else {
+ wfLogWarning( 'tried to get non-visible property' );
+ return null;
}
}
$this,
is_null( $value ) ? [] : $value
);
+ } elseif ( !property_exists( $this, $name ) ) {
+ $this->$name = $value;
+ } else {
+ wfLogWarning( 'tried to set non-visible property' );
}
}
/**
* @since 1.27
- * @param string $wikiId
+ * @param string $dbDomain
* @param int $userId
*/
- public static function purge( $wikiId, $userId ) {
+ public static function purge( $dbDomain, $userId ) {
$cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
- $key = $cache->makeGlobalKey( 'user', 'id', $wikiId, $userId );
+ $key = $cache->makeGlobalKey( 'user', 'id', $dbDomain, $userId );
$cache->delete( $key );
}
* @param int|null $userId User ID, if known
* @param string|null $userName User name, if known
* @param int|null $actorId Actor ID, if known
- * @param bool|string $wikiId remote wiki to which the User/Actor ID applies, or false if none
+ * @param bool|string $dbDomain remote wiki to which the User/Actor ID applies, or false if none
* @return User
*/
- public static function newFromAnyId( $userId, $userName, $actorId, $wikiId = false ) {
+ public static function newFromAnyId( $userId, $userName, $actorId, $dbDomain = false ) {
global $wgActorTableSchemaMigrationStage;
// Stop-gap solution for the problem described in T222212.
// Force the User ID and Actor ID to zero for users loaded from the database
// of another wiki, to prevent subtle data corruption and confusing failure modes.
- if ( $wikiId !== false ) {
+ if ( $dbDomain !== false ) {
$userId = 0;
$actorId = 0;
}