MediaWiki REL1_31
MutableRevisionSlots.php
Go to the documentation of this file.
1<?php
23namespace MediaWiki\Storage;
24
25use Content;
26
33
42 public static function newFromParentRevisionSlots( array $slots ) {
43 $inherited = [];
44 foreach ( $slots as $slot ) {
45 $role = $slot->getRole();
46 $inherited[$role] = SlotRecord::newInherited( $slot );
47 }
48
49 return new MutableRevisionSlots( $inherited );
50 }
51
55 public function __construct( array $slots = [] ) {
56 parent::__construct( $slots );
57 }
58
67 public function setSlot( SlotRecord $slot ) {
68 if ( !is_array( $this->slots ) ) {
69 $this->getSlots(); // initialize $this->slots
70 }
71
72 $role = $slot->getRole();
73 $this->slots[$role] = $slot;
74 }
75
85 public function setContent( $role, Content $content ) {
86 $slot = SlotRecord::newUnsaved( $role, $content );
87 $this->setSlot( $slot );
88 }
89
97 public function removeSlot( $role ) {
98 if ( !is_array( $this->slots ) ) {
99 $this->getSlots(); // initialize $this->slots
100 }
101
102 unset( $this->slots[$role] );
103 }
104
112 public function getTouchedSlots() {
113 return array_filter(
114 $this->getSlots(),
115 function ( SlotRecord $slot ) {
116 return !$slot->isInherited();
117 }
118 );
119 }
120
128 public function getInheritedSlots() {
129 return array_filter(
130 $this->getSlots(),
131 function ( SlotRecord $slot ) {
132 return $slot->isInherited();
133 }
134 );
135 }
136
137}
Mutable version of RevisionSlots, for constructing a new revision.
setSlot(SlotRecord $slot)
Sets the given slot.
removeSlot( $role)
Remove the slot for the given role, discontinue the corresponding stream.
getTouchedSlots()
Return all slots that are not inherited.
getInheritedSlots()
Return all slots that are inherited.
static newFromParentRevisionSlots(array $slots)
Constructs a MutableRevisionSlots that inherits from the given list of slots.
setContent( $role, Content $content)
Sets the content for the slot with the given role.
Value object representing the set of slots belonging to a revision.
getSlots()
Returns an associative array that maps role names to SlotRecords.
SlotRecord[] callable $slots
Value object representing a content slot associated with a page revision.
getRole()
Returns the role of the slot.
static newInherited(SlotRecord $slot)
Constructs a new SlotRecord for a new revision, inheriting the content of the given SlotRecord of a p...
isInherited()
Whether this slot was inherited from an older revision.
static newUnsaved( $role, Content $content)
Constructs a new Slot from a Content object for a new revision.
Base interface for content objects.
Definition Content.php:34