Page MenuHomePhabricator

Introduce PageRecord and ExistingPageRecord interfaces
Closed, ResolvedPublic

Description

PageRecord is to represent an editable page on the wiki. It roughly corresponds to a row in the page table. It is intended to replace many usages of WikiPage.

To allow for an easy transition from WikiPage to PageRecord, PageRecord has to be allowed to represent a non-existintg page initially. We introduce ExistingPageRecord as a derived interface with the added guarantee that the page exists. ExistingPageRecord will be implemented by the PageRecordValue class. Once WikiPage has been removed, we can guaranteed that a PageRecord always exists, and make ExisingPageRecord an alias for PageRecord. This strategy is similar to how we are introducing PageIdentity with weak guarantees that are compatible with the behavior of Title, and provide ProperPageIdentity as a temporary stronger version of the interface.

PageRecord shall extend ProperPageIdentity, and ExistingPageRecord shall extend PageRecord. PageRecordValue shall extend PageIdentityValue.

Related Objects

StatusSubtypeAssignedTask
Declineddchen
OpenNone
OpenNone
DuplicateNone
OpenNone
OpenNone
OpenNone
StalledNone
OpenNone
DuplicateNone
ResolvedNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedNone
ResolvedNone
OpenNone
StalledNone
OpenNone
OpenNone
Opendaniel
OpenNone
OpenNone
OpenNone
OpenNone
Resolveddaniel
Resolveddaniel
Opendaniel
Resolveddaniel
OpenNone

Event Timeline

Change 644281 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] DNM: Introduce PageRecord interface

https://gerrit.wikimedia.org/r/644281

daniel raised the priority of this task from Medium to High.
daniel lowered the priority of this task from High to Medium.Feb 23 2021, 5:41 PM

Change 644281 merged by jenkins-bot:
[mediawiki/core@master] Introduce PageRecord interface

https://gerrit.wikimedia.org/r/644281