From e86a6310f748ae00d8575908b9f9eb2540a104aa Mon Sep 17 00:00:00 2001 From: Reedy Date: Sun, 21 May 2017 13:23:31 +0100 Subject: [PATCH] Move some more classes to comply with class per file Change-Id: Ibecea848fcca24709847931f5e02a7c981c4d277 --- autoload.php | 6 +- includes/WikiMap.php | 103 ----------------- includes/WikiReference.php | 124 +++++++++++++++++++++ includes/Xml.php | 24 ---- includes/XmlJsCode.php | 44 ++++++++ includes/utils/ZipDirectoryReader.php | 18 --- includes/utils/ZipDirectoryReaderError.php | 38 +++++++ 7 files changed, 209 insertions(+), 148 deletions(-) create mode 100644 includes/WikiReference.php create mode 100644 includes/XmlJsCode.php create mode 100644 includes/utils/ZipDirectoryReaderError.php diff --git a/autoload.php b/autoload.php index fbdee83ba8..5576e84fae 100644 --- a/autoload.php +++ b/autoload.php @@ -1598,7 +1598,7 @@ $wgAutoloadLocalClasses = [ 'WikiImporter' => __DIR__ . '/includes/import/WikiImporter.php', 'WikiMap' => __DIR__ . '/includes/WikiMap.php', 'WikiPage' => __DIR__ . '/includes/page/WikiPage.php', - 'WikiReference' => __DIR__ . '/includes/WikiMap.php', + 'WikiReference' => __DIR__ . '/includes/WikiReference.php', 'WikiRevision' => __DIR__ . '/includes/import/WikiRevision.php', 'WikiStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php', 'WikiTextStructure' => __DIR__ . '/includes/content/WikiTextStructure.php', @@ -1673,11 +1673,11 @@ $wgAutoloadLocalClasses = [ 'XhprofData' => __DIR__ . '/includes/libs/XhprofData.php', 'Xml' => __DIR__ . '/includes/Xml.php', 'XmlDumpWriter' => __DIR__ . '/includes/export/XmlDumpWriter.php', - 'XmlJsCode' => __DIR__ . '/includes/Xml.php', + 'XmlJsCode' => __DIR__ . '/includes/XmlJsCode.php', 'XmlSelect' => __DIR__ . '/includes/XmlSelect.php', 'XmlTypeCheck' => __DIR__ . '/includes/libs/mime/XmlTypeCheck.php', 'ZhConverter' => __DIR__ . '/languages/classes/LanguageZh.php', 'ZipDirectoryReader' => __DIR__ . '/includes/utils/ZipDirectoryReader.php', - 'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReader.php', + 'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReaderError.php', 'profile_point' => __DIR__ . '/profileinfo.php', ]; diff --git a/includes/WikiMap.php b/includes/WikiMap.php index 0f479ace61..a03bc19412 100644 --- a/includes/WikiMap.php +++ b/includes/WikiMap.php @@ -175,106 +175,3 @@ class WikiMap { return false; } } - -/** - * Reference to a locally-hosted wiki - */ -class WikiReference { - private $mCanonicalServer; ///< canonical server URL, e.g. 'https://www.mediawiki.org' - private $mServer; ///< server URL, may be protocol-relative, e.g. '//www.mediawiki.org' - private $mPath; ///< path, '/wiki/$1' - - /** - * @param string $canonicalServer - * @param string $path - * @param null|string $server - */ - public function __construct( $canonicalServer, $path, $server = null ) { - $this->mCanonicalServer = $canonicalServer; - $this->mPath = $path; - $this->mServer = $server === null ? $canonicalServer : $server; - } - - /** - * Get the URL in a way to be displayed to the user - * More or less Wikimedia specific - * - * @return string - */ - public function getDisplayName() { - $parsed = wfParseUrl( $this->mCanonicalServer ); - if ( $parsed ) { - return $parsed['host']; - } else { - // Invalid server spec. - // There's no sane thing to do here, so just return the canonical server name in full. - return $this->mCanonicalServer; - } - } - - /** - * Helper function for getUrl() - * - * @todo FIXME: This may be generalized... - * - * @param string $page Page name (must be normalised before calling this function! - * May contain a section part.) - * @param string|null $fragmentId - * - * @return string relative URL, without the server part. - */ - private function getLocalUrl( $page, $fragmentId = null ) { - $page = wfUrlencode( str_replace( ' ', '_', $page ) ); - - if ( is_string( $fragmentId ) && $fragmentId !== '' ) { - $page .= '#' . wfUrlencode( $fragmentId ); - } - - return str_replace( '$1', $page, $this->mPath ); - } - - /** - * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki - * - * @param string $page Page name (must be normalised before calling this function!) - * @param string|null $fragmentId - * - * @return string Url - */ - public function getCanonicalUrl( $page, $fragmentId = null ) { - return $this->mCanonicalServer . $this->getLocalUrl( $page, $fragmentId ); - } - - /** - * Get a canonical server URL - * @return string - */ - public function getCanonicalServer() { - return $this->mCanonicalServer; - } - - /** - * Alias for getCanonicalUrl(), for backwards compatibility. - * @param string $page - * @param string|null $fragmentId - * - * @return string - */ - public function getUrl( $page, $fragmentId = null ) { - return $this->getCanonicalUrl( $page, $fragmentId ); - } - - /** - * Get a URL based on $wgServer, like Title::getFullURL() would produce - * when called locally on the wiki. - * - * @param string $page Page name (must be normalized before calling this function!) - * @param string|null $fragmentId - * - * @return string URL - */ - public function getFullUrl( $page, $fragmentId = null ) { - return $this->mServer . - $this->getLocalUrl( $page, $fragmentId ); - } -} diff --git a/includes/WikiReference.php b/includes/WikiReference.php new file mode 100644 index 0000000000..724ba980a3 --- /dev/null +++ b/includes/WikiReference.php @@ -0,0 +1,124 @@ +mCanonicalServer = $canonicalServer; + $this->mPath = $path; + $this->mServer = $server === null ? $canonicalServer : $server; + } + + /** + * Get the URL in a way to be displayed to the user + * More or less Wikimedia specific + * + * @return string + */ + public function getDisplayName() { + $parsed = wfParseUrl( $this->mCanonicalServer ); + if ( $parsed ) { + return $parsed['host']; + } else { + // Invalid server spec. + // There's no sane thing to do here, so just return the canonical server name in full. + return $this->mCanonicalServer; + } + } + + /** + * Helper function for getUrl() + * + * @todo FIXME: This may be generalized... + * + * @param string $page Page name (must be normalised before calling this function! + * May contain a section part.) + * @param string|null $fragmentId + * + * @return string relative URL, without the server part. + */ + private function getLocalUrl( $page, $fragmentId = null ) { + $page = wfUrlencode( str_replace( ' ', '_', $page ) ); + + if ( is_string( $fragmentId ) && $fragmentId !== '' ) { + $page .= '#' . wfUrlencode( $fragmentId ); + } + + return str_replace( '$1', $page, $this->mPath ); + } + + /** + * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki + * + * @param string $page Page name (must be normalised before calling this function!) + * @param string|null $fragmentId + * + * @return string Url + */ + public function getCanonicalUrl( $page, $fragmentId = null ) { + return $this->mCanonicalServer . $this->getLocalUrl( $page, $fragmentId ); + } + + /** + * Get a canonical server URL + * @return string + */ + public function getCanonicalServer() { + return $this->mCanonicalServer; + } + + /** + * Alias for getCanonicalUrl(), for backwards compatibility. + * @param string $page + * @param string|null $fragmentId + * + * @return string + */ + public function getUrl( $page, $fragmentId = null ) { + return $this->getCanonicalUrl( $page, $fragmentId ); + } + + /** + * Get a URL based on $wgServer, like Title::getFullURL() would produce + * when called locally on the wiki. + * + * @param string $page Page name (must be normalized before calling this function!) + * @param string|null $fragmentId + * + * @return string URL + */ + public function getFullUrl( $page, $fragmentId = null ) { + return $this->mServer . + $this->getLocalUrl( $page, $fragmentId ); + } +} diff --git a/includes/Xml.php b/includes/Xml.php index 4e8796744c..8289b818c1 100644 --- a/includes/Xml.php +++ b/includes/Xml.php @@ -827,27 +827,3 @@ class Xml { } } -/** - * A wrapper class which causes Xml::encodeJsVar() and Xml::encodeJsCall() to - * interpret a given string as being a JavaScript expression, instead of string - * data. - * - * Example: - * - * Xml::encodeJsVar( new XmlJsCode( 'a + b' ) ); - * - * Returns "a + b". - * - * @note As of 1.21, XmlJsCode objects cannot be nested inside objects or arrays. The sole - * exception is the $args argument to Xml::encodeJsCall() because Xml::encodeJsVar() is - * called for each individual element in that array. - * - * @since 1.17 - */ -class XmlJsCode { - public $value; - - function __construct( $value ) { - $this->value = $value; - } -} diff --git a/includes/XmlJsCode.php b/includes/XmlJsCode.php new file mode 100644 index 0000000000..d1cd037c98 --- /dev/null +++ b/includes/XmlJsCode.php @@ -0,0 +1,44 @@ +value = $value; + } +} diff --git a/includes/utils/ZipDirectoryReader.php b/includes/utils/ZipDirectoryReader.php index 212f325cad..dd67fa8c4b 100644 --- a/includes/utils/ZipDirectoryReader.php +++ b/includes/utils/ZipDirectoryReader.php @@ -716,21 +716,3 @@ class ZipDirectoryReader { } } -/** - * Internal exception class. Will be caught by private code. - */ -class ZipDirectoryReaderError extends Exception { - protected $errorCode; - - function __construct( $code ) { - $this->errorCode = $code; - parent::__construct( "ZipDirectoryReader error: $code" ); - } - - /** - * @return mixed - */ - function getErrorCode() { - return $this->errorCode; - } -} diff --git a/includes/utils/ZipDirectoryReaderError.php b/includes/utils/ZipDirectoryReaderError.php new file mode 100644 index 0000000000..592036e384 --- /dev/null +++ b/includes/utils/ZipDirectoryReaderError.php @@ -0,0 +1,38 @@ +errorCode = $code; + parent::__construct( "ZipDirectoryReader error: $code" ); + } + + /** + * @return mixed + */ + function getErrorCode() { + return $this->errorCode; + } +} -- 2.20.1