Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 15
WikibaseSearchConfig
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
90
0.00% covered (danger)
0.00%
0 / 15
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
 newFromGlobals
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 get
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 8
 has
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 2
 enabled
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
<?php
namespace Wikibase\Search\Elastic;
use Config;
/**
 * Config class for Wikibase search configs.
 * Provides BC wrapper for old Wikibase search configs.
 */
class WikibaseSearchConfig implements Config {
    private const WIKIBASE_SEARCH_CONFIG_PREFIX = 'wgWBCS';
    /**
     * Global config.
     * @var \GlobalVarConfig
     */
    private $globals;
    /**
     * Wikibase entitySearch config - for BC.
     * @var array
     */
    private $wikibaseSettings;
    public function __construct( array $wikibaseSettings ) {
        $this->globals = new \GlobalVarConfig( self::WIKIBASE_SEARCH_CONFIG_PREFIX );
        $this->wikibaseSettings = $wikibaseSettings;
    }
    /**
     * Create config from globals
     * @return WikibaseSearchConfig
     */
    public static function newFromGlobals() {
        // BC with Wikidata settings
        return new static( $GLOBALS['wgWBRepoSettings']['entitySearch'] ?? [] );
    }
    /**
     * Get a configuration variable such as "Sitename" or "UploadMaintenance."
     * @param string $name Name of configuration option
     * @param mixed $default Return if value not found.
     * @return mixed Value configured
     * @throws \ConfigException
     */
    public function get( $name, $default = null ) {
        $compat_name = lcfirst( $name );
        // TODO: deprecate and remove these BC settings
        if ( array_key_exists( $compat_name, $this->wikibaseSettings ) ) {
            return $this->wikibaseSettings[$compat_name];
        }
        if ( $this->globals->has( $name ) ) {
            $value = $this->globals->get( $name );
            if ( $value !== null ) {
                return $value;
            }
        }
        return $default;
    }
    /**
     * Check whether a configuration option is set for the given name
     *
     * @param string $name Name of configuration option
     * @return bool
     */
    public function has( $name ) {
        return $this->globals->has( $name ) ||
                array_key_exists( lcfirst( $name ), $this->wikibaseSettings );
    }
    /**
     * Check whether search functionality for this extension is enabled.
     *
     * @return bool
     */
    public function enabled() {
        // Ignore Wikibase setting, it should not disable this one
        return $this->globals->get( 'UseCirrus' );
    }
}