Legoktm has uploaded a new change for review. https://gerrit.wikimedia.org/r/301729
Change subject: MediaHandlerFactory: Don't use any global state ...................................................................... MediaHandlerFactory: Don't use any global state Instead inject the configured MediaHandlers in the service constructor. Change-Id: I039c01ef531389c74524cb7adcb8cf1229d9a95d --- M includes/ServiceWiring.php M includes/media/MediaHandlerFactory.php M tests/phpunit/mocks/media/MockMediaHandlerFactory.php 3 files changed, 18 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/29/301729/1 diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 438f667..21c6377 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -159,7 +159,9 @@ }, 'MediaHandlerFactory' => function( MediaWikiServices $services ) { - return new MediaHandlerFactory(); + return new MediaHandlerFactory( + $services->getMainConfig()->get( 'MediaHandlers' ) + ); }, 'LinkCache' => function( MediaWikiServices $services ) { diff --git a/includes/media/MediaHandlerFactory.php b/includes/media/MediaHandlerFactory.php index d87e730..4bfd9e4 100644 --- a/includes/media/MediaHandlerFactory.php +++ b/includes/media/MediaHandlerFactory.php @@ -50,18 +50,24 @@ ]; /** + * @var array + */ + private $registry; + + /** * Instance cache of MediaHandler objects by mimetype * * @var MediaHandler[] */ private $handlers; - protected function getHandlerClass( $type) { - global $wgMediaHandlers; + public function __construct( array $registry ) { + $this->registry = $registry + self::$coreHandlers; + } - $registry = $wgMediaHandlers + self::$coreHandlers; - if ( isset( $registry[$type] ) ) { - return $registry[$type]; + protected function getHandlerClass( $type) { + if ( isset( $this->registry[$type] ) ) { + return $this->registry[$type]; } else { return false; } diff --git a/tests/phpunit/mocks/media/MockMediaHandlerFactory.php b/tests/phpunit/mocks/media/MockMediaHandlerFactory.php index 0bcc6eb..54d46b0 100644 --- a/tests/phpunit/mocks/media/MockMediaHandlerFactory.php +++ b/tests/phpunit/mocks/media/MockMediaHandlerFactory.php @@ -36,6 +36,10 @@ 'application/ogg' => MockOggHandler::class, ]; + public function __construct() { + // override parent + } + protected function getHandlerClass( $type ) { if ( isset( self::$overrides[$type] ) ) { return self::$overrides[$type]; -- To view, visit https://gerrit.wikimedia.org/r/301729 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I039c01ef531389c74524cb7adcb8cf1229d9a95d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits