MediaWiki  master
Revision\RevisionSlots Class Reference

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

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

Public Member Functions

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

Protected Attributes

SlotRecord[] callable $slots
 

Private Member Functions

 setSlotsInternal (array $slots)
 

Detailed Description

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

Note
RevisionSlots provides "raw" access to the slots and does not apply audience checks. If audience checks are desired, use RevisionRecord::getSlot() or RevisionRecord::getContent() instead.
Since
1.31
1.32 Renamed from MediaWiki\Storage\RevisionSlots

Definition at line 39 of file RevisionSlots.php.

Constructor & Destructor Documentation

◆ __construct()

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

Definition at line 48 of file RevisionSlots.php.

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

Member Function Documentation

◆ __sleep()

Revision\RevisionSlots::__sleep ( )

Implemented to defy serialization.

Exceptions
LogicExceptionalways

Definition at line 78 of file RevisionSlots.php.

◆ computeSha1()

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 196 of file RevisionSlots.php.

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

◆ computeSize()

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 154 of file RevisionSlots.php.

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

◆ getContent()

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.

See also
SlotRecord::getContent()
Parameters
string$roleThe role name of the desired slot
Exceptions
RevisionAccessExceptionif the slot does not exist or slot data could not be lazy-loaded. See SlotRecord::getContent() for details.
Returns
Content

Definition at line 97 of file RevisionSlots.php.

References Revision\RevisionSlots\getSlot().

◆ getInheritedSlots()

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 236 of file RevisionSlots.php.

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

◆ getOriginalSlots()

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 219 of file RevisionSlots.php.

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

◆ getRolesWithDifferentContent()

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 289 of file RevisionSlots.php.

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

◆ getSlot()

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 112 of file RevisionSlots.php.

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

Referenced by Revision\RevisionSlots\getContent().

◆ getSlotRoles()

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 141 of file RevisionSlots.php.

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

◆ getSlots()

Revision\RevisionSlots::getSlots ( )

◆ hasSameContent()

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 254 of file RevisionSlots.php.

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

◆ hasSlot()

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 129 of file RevisionSlots.php.

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

◆ setSlotsInternal()

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

Definition at line 61 of file RevisionSlots.php.

References Revision\RevisionSlots\$slots.

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

Member Data Documentation

◆ $slots


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