Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4146995
PageCreatedEvent.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
PageCreatedEvent.php
View Options
<?php
/**
* @license GPL-2.0-or-later
* @file
*/
namespace
MediaWiki\Page\Event
;
use
MediaWiki\Page\ExistingPageRecord
;
use
MediaWiki\Revision\RevisionRecord
;
use
MediaWiki\User\UserIdentity
;
use
Wikimedia\Assert\Assert
;
/**
* Domain event representing page creation.
*
* Listeners registered for the "PageCreated" event type will receive a
* partial history of changes to pages' PageIdentity, namely changes
* where the page's ID used to be 0 before the change (that is, the page didn't
* previously exist).
*
* PageCreatedEvents are emitted by DerivedPageDataUpdater, typically
* triggered by PageUpdater.
*
* User activities that trigger PageCreatedEvents event include:
* - editing a non-existing page
* - undeleting pages
* - importing pages
* - moving pages, when a redirect is created under the old title
* - uploading media files
*
* @see PageUpdatedEvent
* @see PageDeletedEvent
*
* @since 1.45
*/
class
PageCreatedEvent
extends
PageRecordChangedEvent
{
public
const
TYPE
=
'PageCreated'
;
private
RevisionRecord
$latestRevisionAfter
;
private
string
$reason
;
/**
* @param string $cause See the self::CAUSE_XXX constants.
* @param ExistingPageRecord $pageRecordAfter
* @param RevisionRecord $latestRevisionAfter
* @param UserIdentity $performer The user performing the update.
*/
public
function
__construct
(
string
$cause
,
ExistingPageRecord
$pageRecordAfter
,
RevisionRecord
$latestRevisionAfter
,
UserIdentity
$performer
,
string
$reason
)
{
parent
::
__construct
(
$cause
,
null
,
$pageRecordAfter
,
$performer
);
Assert
::
parameter
(
$pageRecordAfter
->
exists
(),
'$pageRecordAfter'
,
'must represent an existing page'
);
$this
->
declareEventType
(
self
::
TYPE
);
$this
->
latestRevisionAfter
=
$latestRevisionAfter
;
$this
->
reason
=
$reason
;
}
/**
* Returns the reason supplied by the user.
* If the page was created by a regular edit, this is the same as the edit summary.
*
* @return string
*/
public
function
getReason
():
string
{
return
$this
->
reason
;
}
/**
* Returns the revision that became the page's latest revision when the
* page was created.
*/
public
function
getLatestRevisionAfter
():
RevisionRecord
{
return
$this
->
latestRevisionAfter
;
}
/**
* @inheritDoc
*/
public
function
getPageRecordAfter
():
ExistingPageRecord
{
// Overwritten to guarantee that the return value is not null.
// @phan-suppress-next-line PhanTypeMismatchReturnNullable
return
parent
::
getPageRecordAfter
();
}
/**
* @inheritDoc
*
* @return null
*/
public
function
getPageRecordBefore
():
?
ExistingPageRecord
{
// Overwritten to guarantee that the return value is always null.
// XXX: This may not work for a reconsolidation version of this event!
return
null
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 19 2026, 18:14 (5 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
9d/f8/78d54912ed3fea721495ad4bcc73
Default Alt Text
PageCreatedEvent.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment