Legoktm has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/365865 )
Change subject: Return a typed object from WikiPage::prepareContentForEdit
......................................................................
Return a typed object from WikiPage::prepareContentForEdit
This makes it easier to figure out what values are available and
includes documentation about each field.
This will also allow us to add deprecation warnings for deprecated
properties via __get() in the future.
Change-Id: I4ecc900372546013253256749563aaa203ff8963
---
M autoload.php
A includes/edit/PreparedEdit.php
M includes/page/WikiPage.php
3 files changed, 121 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/65/365865/1
diff --git a/autoload.php b/autoload.php
index ce69ecd..a6128a4 100644
--- a/autoload.php
+++ b/autoload.php
@@ -875,6 +875,7 @@
'MediaWiki\\Auth\\UsernameAuthenticationRequest' => __DIR__ .
'/includes/auth/UsernameAuthenticationRequest.php',
'MediaWiki\\Diff\\ComplexityException' => __DIR__ .
'/includes/diff/ComplexityException.php',
'MediaWiki\\Diff\\WordAccumulator' => __DIR__ .
'/includes/diff/WordAccumulator.php',
+ 'MediaWiki\\Edit\\PreparedEdit' => __DIR__ .
'/includes/edit/PreparedEdit.php',
'MediaWiki\\HeaderCallback' => __DIR__ . '/includes/HeaderCallback.php',
'MediaWiki\\Interwiki\\ClassicInterwikiLookup' => __DIR__ .
'/includes/interwiki/ClassicInterwikiLookup.php',
'MediaWiki\\Interwiki\\InterwikiLookup' => __DIR__ .
'/includes/interwiki/InterwikiLookup.php',
diff --git a/includes/edit/PreparedEdit.php b/includes/edit/PreparedEdit.php
new file mode 100644
index 0000000..6d1350a
--- /dev/null
+++ b/includes/edit/PreparedEdit.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+
+namespace MediaWiki\Edit;
+
+use Content;
+use ParserOptions;
+use ParserOutput;
+
+
+/**
+ * Represents information returned by WikiPage::prepareContentForEdit()
+ *
+ * @since 1.30
+ */
+class PreparedEdit {
+
+ /**
+ * Time this prepared edit was made
+ *
+ * @var string
+ */
+ public $timestamp;
+
+ /**
+ * Revision ID
+ *
+ * @var int|null
+ */
+ public $revid;
+
+ /**
+ * Content after going through pre-save transform
+ *
+ * @var Content|null
+ */
+ public $pstContent;
+
+ /**
+ * Content format
+ *
+ * @var string
+ */
+ public $format;
+
+ /**
+ * Parser options used to get parser output
+ *
+ * @var ParserOptions
+ */
+ public $popts;
+
+
+ /**
+ * Parser output
+ *
+ * @var ParserOutput|null
+ */
+ public $output;
+
+ /**
+ * Content that is being saved (before PST)
+ *
+ * @var Content
+ */
+ public $newContent;
+
+ /**
+ * Current content of the page, if any
+ *
+ * @var Content|null
+ */
+ public $oldContent;
+
+ /**
+ * $newContent in text form
+ *
+ * @var string
+ * @deprecated since 1.21
+ */
+ public $newText;
+
+
+ /**
+ * $oldContent in text from
+ *
+ * @var string
+ * @deprecated since 1.21
+ */
+ public $oldText;
+
+ /**
+ * $pstContent in text form
+ *
+ * @var string
+ * @deprecated since 1.21
+ */
+ public $pst;
+}
diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php
index 3ba2d2e..20fb9be 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -20,6 +20,7 @@
* @file
*/
+use MediaWiki\Edit\PreparedEdit;
use \MediaWiki\Logger\LoggerFactory;
use \MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\FakeResultWrapper;
@@ -1969,7 +1970,7 @@
* @param string|null $serialFormat
* @param bool $useCache Check shared prepared edit cache
*
- * @return object
+ * @return PreparedEdit
*
* @since 1.21
*/
@@ -2019,7 +2020,7 @@
$popts = ParserOptions::newFromUserAndLang( $user, $wgContLang
);
Hooks::run( 'ArticlePrepareTextForEdit', [ $this, $popts ] );
- $edit = (object)[];
+ $edit = new PreparedEdit();
if ( $cachedEdit ) {
$edit->timestamp = $cachedEdit->timestamp;
} else {
--
To view, visit https://gerrit.wikimedia.org/r/365865
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ecc900372546013253256749563aaa203ff8963
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits