-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathServiceWiring.php
57 lines (48 loc) · 2.03 KB
/
ServiceWiring.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
use MediaWiki\Config\Config;
use MediaWiki\Extension\WikimediaEditorTasks\CounterDao;
use MediaWiki\Extension\WikimediaEditorTasks\CounterFactory;
use MediaWiki\Extension\WikimediaEditorTasks\Utils;
use MediaWiki\Extension\WikimediaEditorTasks\WikimediaEditorTasksServices;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
use MediaWiki\Storage\NameTableStore;
return [
'WikimediaEditorTasksConfig' => static function ( MediaWikiServices $services ): Config {
return $services->getConfigFactory()->makeConfig( 'WikimediaEditorTasks' );
},
'WikimediaEditorTasksCounterFactory' => static function ( MediaWikiServices $services ): CounterFactory {
$wmetServices = WikimediaEditorTasksServices::wrap( $services );
return new CounterFactory(
$wmetServices->getCounterDao(),
$wmetServices->getNameTableStore(),
$wmetServices->getExtensionConfig()->get( 'WikimediaEditorTasksEnableEditStreaks' ),
$wmetServices->getExtensionConfig()->get( 'WikimediaEditorTasksEnableRevertCounts' )
);
},
'WikimediaEditorTasksCounterDao' => static function ( MediaWikiServices $services ): CounterDao {
return new CounterDao(
Utils::getUserCountsDB( DB_PRIMARY, $services ),
Utils::getUserCountsDB( DB_REPLICA, $services )
);
},
'WikimediaEditorTasksNameTableStore' => static function ( MediaWikiServices $services ): NameTableStore {
$wmetServices = WikimediaEditorTasksServices::getInstance();
$database = $wmetServices->getExtensionConfig()->get( 'WikimediaEditorTasksUserCountsDatabase' );
$cluster = $wmetServices->getExtensionConfig()->get( 'WikimediaEditorTasksUserCountsCluster' );
$loadBalancerFactory = $services->getDBLoadBalancerFactory();
$loadBalancer = $cluster
? $loadBalancerFactory->getExternalLB( $cluster )
: $loadBalancerFactory->getMainLB( $database );
return new NameTableStore(
$loadBalancer,
$services->getMainWANObjectCache(),
LoggerFactory::getInstance( 'WikimediaEditorTasks' ),
'wikimedia_editor_tasks_keys',
'wet_id',
'wet_key',
null,
$database
);
},
];