Fix the namespace of SpecialPageFactory
Follows-up d4045035b0.
This class was added to the MediaWiki\Special namespace, contrary to the
plan in T166010 which reserves that namespace for core special pages.
Instead, use MediaWiki\SpecialPage, following the directory in which it
is located.
Also, fix two bugs which prevented the introduction of a namespaced
class alias.
Bug: T166010
Change-Id: I6e31340aaae32a89beb7e45b79d76a7fea9808d2
This commit is contained in:
parent
d109281079
commit
44d51cb04e
13 changed files with 39 additions and 14 deletions
|
|
@ -491,6 +491,9 @@ because of Phabricator reports.
|
|||
- LogPage::addEntry
|
||||
* Article::insertProtectNullRevision is deprecated. Instead, use
|
||||
WikiPage::insertProtectNullRevision.
|
||||
* The SpecialPageFactory class was moved from the MediaWiki\Special namespace
|
||||
to the MediaWiki\SpecialPage namespace. The old location remains as a
|
||||
deprecated alias.
|
||||
* …
|
||||
|
||||
=== Other changes in 1.35 ===
|
||||
|
|
|
|||
|
|
@ -924,6 +924,7 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Search\\SearchWidgets\\SimpleSearchResultWidget' => __DIR__ . '/includes/search/searchwidgets/SimpleSearchResultWidget.php',
|
||||
'MediaWiki\\ShellDisabledError' => __DIR__ . '/includes/exception/ShellDisabledError.php',
|
||||
'MediaWiki\\Site\\MediaWikiPageNameNormalizer' => __DIR__ . '/includes/site/MediaWikiPageNameNormalizer.php',
|
||||
'MediaWiki\\SpecialPage\\SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
|
||||
'MediaWiki\\Special\\SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
|
||||
'MediaWiki\\Storage\\IncompleteRevisionException' => __DIR__ . '/includes/Revision/IncompleteRevisionException.php',
|
||||
'MediaWiki\\Storage\\MutableRevisionRecord' => __DIR__ . '/includes/Revision/MutableRevisionRecord.php',
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ use MediaWiki\Revision\RevisionStore;
|
|||
use MediaWiki\Revision\RevisionStoreFactory;
|
||||
use MediaWiki\Revision\SlotRoleRegistry;
|
||||
use MediaWiki\Shell\CommandFactory;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use MediaWiki\Storage\BlobStore;
|
||||
use MediaWiki\Storage\BlobStoreFactory;
|
||||
use MediaWiki\Storage\NameTableStore;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ use MediaWiki\Linker\LinkTarget;
|
|||
use MediaWiki\Revision\RevisionLookup;
|
||||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\Session\SessionManager;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use MediaWiki\User\UserIdentity;
|
||||
use MessageSpecifier;
|
||||
use NamespaceInfo;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ use MediaWiki\Revision\RevisionStore;
|
|||
use MediaWiki\Revision\RevisionStoreFactory;
|
||||
use MediaWiki\Revision\SlotRoleRegistry;
|
||||
use MediaWiki\Shell\CommandFactory;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use MediaWiki\Storage\BlobStore;
|
||||
use MediaWiki\Storage\BlobStoreFactory;
|
||||
use MediaWiki\Storage\NameTableStoreFactory;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
|
||||
/**
|
||||
* Query module to get the results of a QueryPage-based special page
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ use MediaWiki\Linker\LinkRenderer;
|
|||
use MediaWiki\Linker\LinkRendererFactory;
|
||||
use MediaWiki\Linker\LinkTarget;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Psr\Log\NullLogger;
|
||||
use Wikimedia\IPUtils;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ use MediaWiki\BadFileLookup;
|
|||
use MediaWiki\Config\ServiceOptions;
|
||||
use MediaWiki\Languages\LanguageConverterFactory;
|
||||
use MediaWiki\Linker\LinkRendererFactory;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
* @defgroup SpecialPage SpecialPage
|
||||
*/
|
||||
|
||||
namespace MediaWiki\Special;
|
||||
namespace MediaWiki\SpecialPage;
|
||||
|
||||
use Hooks;
|
||||
use IContextSource;
|
||||
|
|
@ -765,3 +765,6 @@ class SpecialPageFactory {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/** @deprecated since 1.35, use MediaWiki\\SpecialPage\\SpecialPageFactory */
|
||||
class_alias( SpecialPageFactory::class, 'MediaWiki\\Special\\SpecialPageFactory' );
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ class ClassCollector {
|
|||
if ( $this->alias['target'] === true ) {
|
||||
// We already saw a first argument, this must be the second.
|
||||
// Strip quotes from the string literal.
|
||||
$this->alias['name'] = substr( $token[1], 1, -1 );
|
||||
$this->alias['name'] = self::stripQuotes( $token[1] );
|
||||
}
|
||||
} elseif ( $token === ')' ) {
|
||||
// End of function call
|
||||
|
|
@ -212,6 +212,19 @@ class ClassCollector {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode a quoted PHP string, interpreting escape sequences, like eval($str).
|
||||
* The implementation is half-baked, but the character set allowed in class
|
||||
* names is pretty small. This could be replaced by a call to a fully-baked
|
||||
* utility function.
|
||||
*
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
private static function stripQuotes( $str ) {
|
||||
return str_replace( '\\\\', '\\', substr( $str, 1, -1 ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string representation of the tokens within the
|
||||
* current expect sequence and resets the sequence.
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ use Wikimedia\ScopedCallback;
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* @covers \MediaWiki\Special\SpecialPageFactory
|
||||
* @covers \MediaWiki\SpecialPage\SpecialPageFactory
|
||||
* @group SpecialPage
|
||||
*/
|
||||
class SpecialPageFactoryTest extends MediaWikiTestCase {
|
||||
|
|
@ -269,7 +269,7 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @covers \MediaWiki\Special\SpecialPageFactory::getPage
|
||||
* @covers \MediaWiki\SpecialPage\SpecialPageFactory::getPage
|
||||
*/
|
||||
public function testSpecialPageCreationThatRequiresService() {
|
||||
$type = null;
|
||||
|
|
@ -291,6 +291,6 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
|
|||
|
||||
SpecialPageFactory::getPage( 'TestPage' );
|
||||
|
||||
$this->assertEquals( \MediaWiki\Special\SpecialPageFactory::class, $type );
|
||||
$this->assertEquals( \MediaWiki\SpecialPage\SpecialPageFactory::class, $type );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,16 +115,21 @@ class AutoLoaderStructureTest extends MediaWikiTestCase {
|
|||
$classesInFile[$class] = true;
|
||||
} elseif ( !empty( $match['original'] ) ) {
|
||||
// 'class_alias( "Foo", "Bar" );'
|
||||
$aliasesInFile[$match['alias']] = $match['original'];
|
||||
$aliasesInFile[self::removeSlashes( $match['alias'] )] = $match['original'];
|
||||
} else {
|
||||
// 'class_alias( Foo::class, "Bar" );'
|
||||
$aliasesInFile[$match['aliasString']] = $fileNamespace . $match['originalStatic'];
|
||||
$aliasesInFile[self::removeSlashes( $match['aliasString'] )] =
|
||||
$fileNamespace . $match['originalStatic'];
|
||||
}
|
||||
}
|
||||
|
||||
return [ $classesInFile, $aliasesInFile ];
|
||||
}
|
||||
|
||||
private static function removeSlashes( $str ) {
|
||||
return str_replace( '\\\\', '\\', $str );
|
||||
}
|
||||
|
||||
protected static function checkAutoLoadConf() {
|
||||
global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use MediaWiki\BadFileLookup;
|
|||
use MediaWiki\Config\ServiceOptions;
|
||||
use MediaWiki\Languages\LanguageConverterFactory;
|
||||
use MediaWiki\Linker\LinkRendererFactory;
|
||||
use MediaWiki\Special\SpecialPageFactory;
|
||||
use MediaWiki\SpecialPage\SpecialPageFactory;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue