MediaWiki REL1_32
MediaWiki\Revision\RevisionSlots Class Reference

Value object representing the set of slots belonging to a revision. More...

Inheritance diagram for MediaWiki\Revision\RevisionSlots:
Collaboration diagram for MediaWiki\Revision\RevisionSlots:

Public Member Functions

 __construct ( $slots)
 
 __sleep ()
 Implemented to defy serialization.
 
 computeSha1 ()
 Computes the combined hash of the revisions's slots.
 
 computeSize ()
 Computes the total nominal size of the revision's slots, in bogo-bytes.
 
 getContent ( $role)
 Returns the Content of the given slot.
 
 getInheritedSlots ()
 Return all slots that are not not originate in the revision they belong to (that is, they are inherited from some other revision).
 
 getOriginalSlots ()
 Return all slots that belong to the revision they originate from (that is, they are not inherited from some other revision).
 
 getRolesWithDifferentContent (RevisionSlots $other)
 Find roles for which the $other RevisionSlots object has different content as this RevisionSlots object, including any roles that are present in one but not the other.
 
 getSlot ( $role)
 Returns the SlotRecord of the given slot.
 
 getSlotRoles ()
 Returns the slot names (roles) of all slots present in this revision.
 
 getSlots ()
 Returns an associative array that maps role names to SlotRecords.
 
 hasSameContent (RevisionSlots $other)
 Checks whether the other RevisionSlots instance has the same content as this instance.
 
 hasSlot ( $role)
 Returns whether the given slot is set.
 

Protected Attributes

SlotRecord[] callable $slots
 

Private Member Functions

 setSlotsInternal (array $slots)
 

Detailed Description

Value object representing the set of slots belonging to a revision.

Since
1.31
1.32 Renamed from MediaWiki\Storage\RevisionSlots

Definition at line 35 of file RevisionSlots.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Revision\RevisionSlots::__construct (   $slots)
Parameters
SlotRecord[] | callable$slotsSlotRecords, or a callback that returns such a structure.

Definition at line 44 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, and MediaWiki\Revision\RevisionSlots\setSlotsInternal().

Member Function Documentation

◆ __sleep()

MediaWiki\Revision\RevisionSlots::__sleep ( )

Implemented to defy serialization.

Exceptions
LogicExceptionalways

Definition at line 74 of file RevisionSlots.php.

◆ computeSha1()

MediaWiki\Revision\RevisionSlots::computeSha1 ( )

Computes the combined hash of the revisions's slots.

Note
For backwards compatibility, the combined hash of a single slot is that slot's hash. For consistency, the combined hash of an empty set of slots is the hash of the empty string.
Warning
This is potentially expensive! It may cause all slot's content to be loaded and deserialized, then re-serialized and hashed.
Returns
string

Definition at line 190 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, MediaWiki\Revision\SlotRecord\base36Sha1(), MediaWiki\Revision\SlotRecord\getSha1(), and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Tests\Revision\RevisionArchiveRecordTest\testConstructorAndGetters(), and MediaWiki\Tests\Revision\RevisionStoreRecordTest\testConstructorAndGetters().

◆ computeSize()

MediaWiki\Revision\RevisionSlots::computeSize ( )

Computes the total nominal size of the revision's slots, in bogo-bytes.

Warning
This is potentially expensive! It may cause all slot's content to be loaded and deserialized.
Returns
int

Definition at line 148 of file RevisionSlots.php.

References MediaWiki\Revision\SlotRecord\getSize(), and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Tests\Revision\RevisionArchiveRecordTest\testConstructorAndGetters(), and MediaWiki\Tests\Revision\RevisionStoreRecordTest\testConstructorAndGetters().

◆ getContent()

MediaWiki\Revision\RevisionSlots::getContent (   $role)

Returns the Content of the given slot.

Call getSlotNames() to get a list of available slots.

Note that for mutable Content objects, each call to this method will return a fresh clone.

Parameters
string$roleThe role name of the desired slot
Exceptions
RevisionAccessExceptionif the slot does not exist or slot data could not be lazy-loaded.
Returns
Content

Definition at line 91 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\getSlot().

◆ getInheritedSlots()

MediaWiki\Revision\RevisionSlots::getInheritedSlots ( )

Return all slots that are not not originate in the revision they belong to (that is, they are inherited from some other revision).

Note
This may cause the slot meta-data for the revision to be lazy-loaded.
Returns
SlotRecord[]

Definition at line 230 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\getSlots(), and MediaWiki\Revision\SlotRecord\isInherited().

◆ getOriginalSlots()

MediaWiki\Revision\RevisionSlots::getOriginalSlots ( )

Return all slots that belong to the revision they originate from (that is, they are not inherited from some other revision).

Note
This may cause the slot meta-data for the revision to be lazy-loaded.
Returns
SlotRecord[]

Definition at line 213 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\getSlots(), and MediaWiki\Revision\SlotRecord\isInherited().

◆ getRolesWithDifferentContent()

MediaWiki\Revision\RevisionSlots::getRolesWithDifferentContent ( RevisionSlots  $other)

Find roles for which the $other RevisionSlots object has different content as this RevisionSlots object, including any roles that are present in one but not the other.

Parameters
RevisionSlots$other
Returns
string[] a list of slot roles that are different.

Definition at line 283 of file RevisionSlots.php.

References $s, $t, as, and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Tests\Revision\RevisionSlotsTest\testGetRolesWithDifferentContent().

◆ getSlot()

MediaWiki\Revision\RevisionSlots::getSlot (   $role)

Returns the SlotRecord of the given slot.

Call getSlotNames() to get a list of available slots.

Parameters
string$roleThe role name of the desired slot
Exceptions
RevisionAccessExceptionif the slot does not exist or slot data could not be lazy-loaded.
Returns
SlotRecord

Definition at line 106 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Revision\RevisionSlots\getContent(), and MediaWiki\Tests\Storage\RevisionSlotsUpdateTest\testNewFromRevisionSlots().

◆ getSlotRoles()

MediaWiki\Revision\RevisionSlots::getSlotRoles ( )

Returns the slot names (roles) of all slots present in this revision.

getContent() will succeed only for the names returned by this method.

Returns
string[]

Definition at line 135 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Tests\Revision\RevisionArchiveRecordTest\testConstructorAndGetters(), and MediaWiki\Tests\Revision\RevisionStoreRecordTest\testConstructorAndGetters().

◆ getSlots()

◆ hasSameContent()

MediaWiki\Revision\RevisionSlots::hasSameContent ( RevisionSlots  $other)

Checks whether the other RevisionSlots instance has the same content as this instance.

Note that this does not mean that the slots have to be the same: they could for instance belong to different revisions.

Parameters
RevisionSlots$other
Returns
bool

Definition at line 248 of file RevisionSlots.php.

References $s, $t, as, and MediaWiki\Revision\RevisionSlots\getSlots().

Referenced by MediaWiki\Tests\Revision\RevisionSlotsTest\testHasSameContent().

◆ hasSlot()

MediaWiki\Revision\RevisionSlots::hasSlot (   $role)

Returns whether the given slot is set.

Parameters
string$roleThe role name of the desired slot
Returns
bool

Definition at line 123 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, and MediaWiki\Revision\RevisionSlots\getSlots().

◆ setSlotsInternal()

MediaWiki\Revision\RevisionSlots::setSlotsInternal ( array  $slots)
private
Parameters
SlotRecord[]$slots

Definition at line 57 of file RevisionSlots.php.

References MediaWiki\Revision\RevisionSlots\$slots, and as.

Referenced by MediaWiki\Revision\RevisionSlots\__construct(), and MediaWiki\Revision\RevisionSlots\getSlots().

Member Data Documentation

◆ $slots


The documentation for this class was generated from the following file: