X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FMagicWordArray.php;h=fde32ce4fd6a6b90833d7de93c5fada98a03df55;hb=eaa34630f4d837422bfed32c492d7a4beffc6ddd;hp=5856e21b717d0dd724bc43788fe779f106134d9f;hpb=9bd7c7f66058fe26e130759090e7a73beee4d3d0;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/MagicWordArray.php b/includes/MagicWordArray.php index 5856e21b71..fde32ce4fd 100644 --- a/includes/MagicWordArray.php +++ b/includes/MagicWordArray.php @@ -23,6 +23,7 @@ */ use MediaWiki\Logger\LoggerFactory; +use MediaWiki\MediaWikiServices; /** * Class for handling an array of magic words @@ -32,6 +33,9 @@ class MagicWordArray { /** @var array */ public $names = []; + /** @var MagicWordFactory */ + private $factory; + /** @var array */ private $hash; @@ -41,9 +45,14 @@ class MagicWordArray { /** * @param array $names + * @param MagicWordFactory|null $factory */ - public function __construct( $names = [] ) { + public function __construct( $names = [], MagicWordFactory $factory = null ) { $this->names = $names; + $this->factory = $factory; + if ( !$factory ) { + $this->factory = MediaWikiServices::getInstance()->getMagicWordFactory(); + } } /** @@ -72,14 +81,13 @@ class MagicWordArray { */ public function getHash() { if ( is_null( $this->hash ) ) { - global $wgContLang; $this->hash = [ 0 => [], 1 => [] ]; foreach ( $this->names as $name ) { - $magic = MagicWord::get( $name ); + $magic = $this->factory->get( $name ); $case = intval( $magic->isCaseSensitive() ); foreach ( $magic->getSynonyms() as $syn ) { if ( !$case ) { - $syn = $wgContLang->lc( $syn ); + $syn = $this->factory->getContentLanguage()->lc( $syn ); } $this->hash[$case][$syn] = $name; } @@ -97,7 +105,7 @@ class MagicWordArray { $this->baseRegex = [ 0 => '', 1 => '' ]; $allGroups = []; foreach ( $this->names as $name ) { - $magic = MagicWord::get( $name ); + $magic = $this->factory->get( $name ); $case = intval( $magic->isCaseSensitive() ); foreach ( $magic->getSynonyms() as $i => $syn ) { // Group name must start with a non-digit in PCRE 8.34+ @@ -203,7 +211,9 @@ class MagicWordArray { */ public function parseMatch( $m ) { reset( $m ); - while ( list( $key, $value ) = each( $m ) ) { + while ( ( $key = key( $m ) ) !== null ) { + $value = current( $m ); + next( $m ); if ( $key === 0 || $value === '' ) { continue; } @@ -257,8 +267,7 @@ class MagicWordArray { if ( isset( $hash[1][$text] ) ) { return $hash[1][$text]; } - global $wgContLang; - $lc = $wgContLang->lc( $text ); + $lc = $this->factory->getContentLanguage()->lc( $text ); if ( isset( $hash[0][$lc] ) ) { return $hash[0][$lc]; }