MagicWord ] */ private $mObjects = []; /** @var MagicWordArray */ private $mDoubleUnderscoreArray = null; /** @var Language */ private $contLang; /** @var HookRunner */ private $hookRunner; /** #@- */ /** * @param Language $contLang Content language * @param HookContainer $hookContainer */ public function __construct( Language $contLang, HookContainer $hookContainer ) { $this->contLang = $contLang; $this->hookRunner = new HookRunner( $hookContainer ); } public function getContentLanguage() { return $this->contLang; } /** * Factory: creates an object representing an ID * * @param string $id The internal name of the magic word * * @return MagicWord */ public function get( $id ) { if ( !isset( $this->mObjects[$id] ) ) { $mw = new MagicWord( null, [], false, $this->contLang ); $mw->load( $id ); $this->mObjects[$id] = $mw; } return $this->mObjects[$id]; } /** * Get an array of parser variable IDs * * @return string[] */ public function getVariableIDs() { if ( !$this->mVariableIDsInitialised ) { # Get variable IDs $this->hookRunner->onMagicWordwgVariableIDs( $this->mVariableIDs ); $this->hookRunner->onGetMagicVariableIDs( $this->mVariableIDs ); $this->mVariableIDsInitialised = true; } return $this->mVariableIDs; } /** * Get an array of parser substitution modifier IDs * @return string[] */ public function getSubstIDs() { return $this->mSubstIDs; } /** * Allow external reads of TTL array * * @param string $id * @return int * @deprecated Since 1.40 */ public function getCacheTTL( $id ) { return -1; } /** * Get a MagicWordArray of double-underscore entities * * @return MagicWordArray */ public function getDoubleUnderscoreArray() { if ( $this->mDoubleUnderscoreArray === null ) { $this->hookRunner->onGetDoubleUnderscoreIDs( $this->mDoubleUnderscoreIDs ); $this->mDoubleUnderscoreArray = $this->newArray( $this->mDoubleUnderscoreIDs ); } return $this->mDoubleUnderscoreArray; } /** * Get a new MagicWordArray with provided $names * * @param array $names * @return MagicWordArray */ public function newArray( array $names = [] ): MagicWordArray { return new MagicWordArray( $names, $this ); } } /** * @deprecated since 1.40 */ class_alias( MagicWordFactory::class, 'MagicWordFactory' );