Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ConfigWrapper
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 has
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare( strict_types = 1 );
4
5namespace MediaWiki\Babel\Config;
6
7use MediaWiki\Config\Config;
8use MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigRouter;
9
10class ConfigWrapper implements Config {
11
12    private MediaWikiConfigRouter $configRouter;
13
14    public function __construct(
15        MediaWikiConfigRouter $configRouter
16    ) {
17        $this->configRouter = $configRouter;
18    }
19
20    /**
21     * @inheritDoc
22     */
23    public function get( $name ) {
24        $value = $this->configRouter->get( $name );
25        if ( is_object( $value ) ) {
26            // CommunityConfiguration passes objects instead of associative arrays (which Babel
27            // expects). This affects eg. BabelCategoryNames. See T369608.
28            $value = wfObjectToArray( $value );
29        }
30        return $value;
31    }
32
33    /**
34     * @inheritDoc
35     */
36    public function has( $name ): bool {
37        return $this->configRouter->has( $name );
38    }
39}