MediaWiki  master
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' );
setSlot(SlotRecord $slot)
Sets the given slot.
Value object representing a content slot associated with a page revision.
Definition: SlotRecord.php:39
SlotRecord [] callable $slots
Created by PhpStorm.
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
inheritSlot(SlotRecord $slot)
Sets the given slot to an inherited version of $slot.
getRole()
Returns the role of the slot.
Definition: SlotRecord.php:489
getSlots()
Returns an associative array that maps role names to SlotRecords.
static newFromParentRevisionSlots(array $slots)
Constructs a MutableRevisionSlots that inherits from the given list of slots.
static newUnsaved( $role, Content $content)
Constructs a new Slot from a Content object for a new revision.
Definition: SlotRecord.php:129
removeSlot( $role)
Remove the slot for the given role, discontinue the corresponding stream.
$content
Definition: router.php:78
Mutable version of RevisionSlots, for constructing a new revision.
Value object representing the set of slots belonging to a revision.
setContent( $role, Content $content)
Sets the content for the slot with the given role.