Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
Services.php
1<?php
2declare( strict_types = 1 );
3
4namespace MediaWiki\Extension\Translate;
5
25use MediaWiki\MediaWikiServices;
26use MessageIndex;
27use Psr\Container\ContainerInterface;
28
38class Services implements ContainerInterface {
40 private $container;
41
42 private function __construct( ContainerInterface $container ) {
43 $this->container = $container;
44 }
45
46 public static function getInstance(): Services {
47 return new self( MediaWikiServices::getInstance() );
48 }
49
51 public function get( $id ) {
52 return $this->container->get( $id );
53 }
54
56 public function has( $id ) {
57 return $this->container->has( $id );
58 }
59
60 public function getConfigHelper(): ConfigHelper {
61 return $this->get( 'Translate:ConfigHelper' );
62 }
63
66 return $this->get( 'Translate:CsvTranslationImporter' );
67 }
68
70 public function getEntitySearch(): EntitySearch {
71 return $this->get( 'Translate:EntitySearch' );
72 }
73
74 public function getExternalMessageSourceStateImporter(): ExternalMessageSourceStateImporter {
75 return $this->get( 'Translate:ExternalMessageSourceStateImporter' );
76 }
77
78 public function getGroupSynchronizationCache(): GroupSynchronizationCache {
79 return $this->get( 'Translate:GroupSynchronizationCache' );
80 }
81
84 return $this->get( 'Translate:MessageBundleStore' );
85 }
86
88 public function getMessageIndex(): MessageIndex {
89 return $this->get( 'Translate:MessageIndex' );
90 }
91
94 return $this->get( 'Translate:MessageGroupReview' );
95 }
96
99 return $this->get( 'Translate:ParsingPlaceholderFactory' );
100 }
101
104 return $this->get( 'Translate:PersistentCache' );
105 }
106
109 return $this->get( 'Translate:ProgressStatsTableFactory' );
110 }
111
114 return $this->get( 'Translate:TranslatableBundleFactory' );
115 }
116
119 return $this->get( 'Translate:TranslatableBundleMover' );
120 }
121
122 public function getTranslatablePageParser(): TranslatablePageParser {
123 return $this->get( 'Translate:TranslatablePageParser' );
124 }
125
128 return $this->get( 'Translate:TranslatablePageStore' );
129 }
130
133 return $this->get( 'Translate:TranslationStashReader' );
134 }
135
138 return $this->get( 'Translate:TranslationStatsDataProvider' );
139 }
140
143 return $this->get( 'Translate:TranslationUnitStoreFactory' );
144 }
145
146 public function getTranslatorActivity(): TranslatorActivity {
147 return $this->get( 'Translate:TranslatorActivity' );
148 }
149
152 return $this->get( 'Translate:TtmServerFactory' );
153 }
154}
return[ 'Translate:ConfigHelper'=> static function():ConfigHelper { return new ConfigHelper();}, 'Translate:CsvTranslationImporter'=> static function(MediaWikiServices $services):CsvTranslationImporter { return new CsvTranslationImporter( $services->getWikiPageFactory());}, 'Translate:EntitySearch'=> static function(MediaWikiServices $services):EntitySearch { return new EntitySearch($services->getMainWANObjectCache(), $services->getCollationFactory() ->makeCollation( 'uca-default-u-kn'), MessageGroups::singleton(), $services->getNamespaceInfo(), $services->get( 'Translate:MessageIndex'), $services->getTitleParser(), $services->getTitleFormatter());}, 'Translate:ExternalMessageSourceStateImporter'=> static function(MediaWikiServices $services):ExternalMessageSourceStateImporter { return new ExternalMessageSourceStateImporter($services->getMainConfig(), $services->get( 'Translate:GroupSynchronizationCache'), $services->getJobQueueGroup(), LoggerFactory::getInstance( 'Translate.GroupSynchronization'), MessageIndex::singleton());}, 'Translate:GroupSynchronizationCache'=> static function(MediaWikiServices $services):GroupSynchronizationCache { return new GroupSynchronizationCache( $services->get( 'Translate:PersistentCache'));}, 'Translate:MessageBundleStore'=> static function(MediaWikiServices $services):MessageBundleStore { return new MessageBundleStore(new RevTagStore(), $services->getJobQueueGroup(), $services->getLanguageNameUtils(), $services->get( 'Translate:MessageIndex'));}, 'Translate:MessageGroupReview'=> static function(MediaWikiServices $services):MessageGroupReview { return new MessageGroupReview($services->getDBLoadBalancer(), $services->getHookContainer());}, 'Translate:MessageIndex'=> static function(MediaWikiServices $services):MessageIndex { $params=$services->getMainConfig() ->get( 'TranslateMessageIndex');if(is_string( $params)) { $params=(array) $params;} $class=array_shift( $params);return new $class( $params);}, 'Translate:ParsingPlaceholderFactory'=> static function():ParsingPlaceholderFactory { return new ParsingPlaceholderFactory();}, 'Translate:PersistentCache'=> static function(MediaWikiServices $services):PersistentCache { return new PersistentDatabaseCache($services->getDBLoadBalancer(), $services->getJsonCodec());}, 'Translate:ProgressStatsTableFactory'=> static function(MediaWikiServices $services):ProgressStatsTableFactory { return new ProgressStatsTableFactory($services->getLinkRenderer(), $services->get( 'Translate:ConfigHelper'));}, 'Translate:SubpageListBuilder'=> static function(MediaWikiServices $services):SubpageListBuilder { return new SubpageListBuilder($services->get( 'Translate:TranslatableBundleFactory'), $services->getLinkBatchFactory());}, 'Translate:TranslatableBundleFactory'=> static function(MediaWikiServices $services):TranslatableBundleFactory { return new TranslatableBundleFactory($services->get( 'Translate:TranslatablePageStore'), $services->get( 'Translate:MessageBundleStore'));}, 'Translate:TranslatableBundleMover'=> static function(MediaWikiServices $services):TranslatableBundleMover { return new TranslatableBundleMover($services->getMovePageFactory(), $services->getJobQueueGroup(), $services->getLinkBatchFactory(), $services->get( 'Translate:TranslatableBundleFactory'), $services->get( 'Translate:SubpageListBuilder'), $services->getMainConfig() ->get( 'TranslatePageMoveLimit'));}, 'Translate:TranslatablePageParser'=> static function(MediaWikiServices $services):TranslatablePageParser { return new TranslatablePageParser($services->get( 'Translate:ParsingPlaceholderFactory'));}, 'Translate:TranslatablePageStore'=> static function(MediaWikiServices $services):TranslatablePageStore { return new TranslatablePageStore($services->get( 'Translate:MessageIndex'), $services->getJobQueueGroup(), new RevTagStore(), $services->getDBLoadBalancer());}, 'Translate:TranslationStashReader'=> static function(MediaWikiServices $services):TranslationStashReader { $db=$services->getDBLoadBalancer() ->getConnectionRef(DB_REPLICA);return new TranslationStashStorage( $db);}, 'Translate:TranslationStatsDataProvider'=> static function(MediaWikiServices $services):TranslationStatsDataProvider { return new TranslationStatsDataProvider(new ServiceOptions(TranslationStatsDataProvider::CONSTRUCTOR_OPTIONS, $services->getMainConfig()), $services->getObjectFactory());}, 'Translate:TranslationUnitStoreFactory'=> static function(MediaWikiServices $services):TranslationUnitStoreFactory { return new TranslationUnitStoreFactory( $services->getDBLoadBalancer());}, 'Translate:TranslatorActivity'=> static function(MediaWikiServices $services):TranslatorActivity { $query=new TranslatorActivityQuery($services->getMainConfig(), $services->getDBLoadBalancer());return new TranslatorActivity($services->getMainObjectStash(), $query, $services->getJobQueueGroup());}, 'Translate:TtmServerFactory'=> static function(MediaWikiServices $services):TtmServerFactory { $config=$services->getMainConfig();$default=$config->get( 'TranslateTranslationDefaultService');if( $default===false) { $default=null;} return new TtmServerFactory( $config->get( 'TranslateTranslationServices'), $default);}]
@phpcs-require-sorted-array
Provides methods to get and change the state of a message group.
Create instances of various classes based on the type of TranslatableBundle.
Contains the core logic to validate and move translatable bundles.
Generates ParserOutput from text or removes all tags from a text.
Minimal service container.
Definition Services.php:38
Service for searching message groups and message keys.
A helper class added to work with configuration values of the Translate Extension.
Create unique placeholders that can be used when parsing (wiki)text.
Creates a database of keys in all groups, so that namespace and key can be used to get the groups the...
Defines what method should be provided by a class implementing a persistent cache.