MediaWiki  1.34.0
MutableRevisionSlots.php
Go to the documentation of this file.
1 <?php
23 namespace MediaWiki\Revision;
24 
25 use Content;
26 
34 
43  public static function newFromParentRevisionSlots( array $slots ) {
44  $inherited = [];
45  foreach ( $slots as $slot ) {
46  $role = $slot->getRole();
47  $inherited[$role] = SlotRecord::newInherited( $slot );
48  }
49 
50  return new MutableRevisionSlots( $inherited );
51  }
52 
56  public function __construct( array $slots = [] ) {
57  parent::__construct( $slots );
58  }
59 
66  public function setSlot( SlotRecord $slot ) {
67  if ( !is_array( $this->slots ) ) {
68  $this->getSlots(); // initialize $this->slots
69  }
70 
71  $role = $slot->getRole();
72  $this->slots[$role] = $slot;
73  }
74 
81  public function inheritSlot( SlotRecord $slot ) {
82  $this->setSlot( SlotRecord::newInherited( $slot ) );
83  }
84 
92  public function setContent( $role, Content $content ) {
93  $slot = SlotRecord::newUnsaved( $role, $content );
94  $this->setSlot( $slot );
95  }
96 
102  public function removeSlot( $role ) {
103  if ( !is_array( $this->slots ) ) {
104  $this->getSlots(); // initialize $this->slots
105  }
106 
107  unset( $this->slots[$role] );
108  }
109 
110 }
111 
116 class_alias( MutableRevisionSlots::class, 'MediaWiki\Storage\MutableRevisionSlots' );
Revision\RevisionSlots\$slots
SlotRecord[] callable $slots
Definition: RevisionSlots.php:38
Revision\SlotRecord\newInherited
static newInherited(SlotRecord $slot)
Constructs a new SlotRecord for a new revision, inheriting the content of the given SlotRecord of a p...
Definition: SlotRecord.php:103
Revision\MutableRevisionSlots\setContent
setContent( $role, Content $content)
Sets the content for the slot with the given role.
Definition: MutableRevisionSlots.php:92
Revision\MutableRevisionSlots
Mutable version of RevisionSlots, for constructing a new revision.
Definition: MutableRevisionSlots.php:33
MediaWiki\Revision
Created by PhpStorm.
Definition: FallbackSlotRoleHandler.php:23
Revision\MutableRevisionSlots\inheritSlot
inheritSlot(SlotRecord $slot)
Sets the given slot to an inherited version of $slot.
Definition: MutableRevisionSlots.php:81
Revision\MutableRevisionSlots\setSlot
setSlot(SlotRecord $slot)
Sets the given slot.
Definition: MutableRevisionSlots.php:66
Revision\SlotRecord\getRole
getRole()
Returns the role of the slot.
Definition: SlotRecord.php:489
Revision\SlotRecord\newUnsaved
static newUnsaved( $role, Content $content)
Constructs a new Slot from a Content object for a new revision.
Definition: SlotRecord.php:129
$content
$content
Definition: router.php:78
Revision\RevisionSlots\getSlots
getSlots()
Returns an associative array that maps role names to SlotRecords.
Definition: RevisionSlots.php:163
Revision\MutableRevisionSlots\__construct
__construct(array $slots=[])
Definition: MutableRevisionSlots.php:56
Content
Base interface for content objects.
Definition: Content.php:34
Revision\MutableRevisionSlots\newFromParentRevisionSlots
static newFromParentRevisionSlots(array $slots)
Constructs a MutableRevisionSlots that inherits from the given list of slots.
Definition: MutableRevisionSlots.php:43
Revision\RevisionSlots
Value object representing the set of slots belonging to a revision.
Definition: RevisionSlots.php:35
Revision\MutableRevisionSlots\removeSlot
removeSlot( $role)
Remove the slot for the given role, discontinue the corresponding stream.
Definition: MutableRevisionSlots.php:102
Revision\SlotRecord
Value object representing a content slot associated with a page revision.
Definition: SlotRecord.php:39