コード例 #1
0
 /**
  * @return ConfigFactory
  */
 public static function getDefaultInstance()
 {
     if (!self::$self) {
         self::$self = new self();
         global $wgConfigRegistry;
         foreach ($wgConfigRegistry as $name => $callback) {
             self::$self->register($name, $callback);
         }
     }
     return self::$self;
 }
コード例 #2
0
 /**
  * @covers ConfigFactory::makeConfig
  */
 public function testMakeConfigWithInvalidCallback()
 {
     $factory = new ConfigFactory();
     $factory->register('unittest', function () {
         return true;
         // Not a Config object
     });
     $this->setExpectedException('UnexpectedValueException');
     $factory->makeConfig('unittest');
 }
コード例 #3
0
    return $services->getDBLoadBalancerFactory()->getMainLB();
}, 'SiteStore' => function (MediaWikiServices $services) {
    $rawSiteStore = new DBSiteStore($services->getDBLoadBalancer());
    // TODO: replace wfGetCache with a CacheFactory service.
    // TODO: replace wfIsHHVM with a capabilities service.
    $cache = wfGetCache(wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING);
    return new CachingSiteStore($rawSiteStore, $cache);
}, 'SiteLookup' => function (MediaWikiServices $services) {
    // Use the default SiteStore as the SiteLookup implementation for now
    return $services->getSiteStore();
}, 'ConfigFactory' => function (MediaWikiServices $services) {
    // Use the bootstrap config to initialize the ConfigFactory.
    $registry = $services->getBootstrapConfig()->get('ConfigRegistry');
    $factory = new ConfigFactory();
    foreach ($registry as $name => $callback) {
        $factory->register($name, $callback);
    }
    return $factory;
}, 'MainConfig' => function (MediaWikiServices $services) {
    // Use the 'main' config from the ConfigFactory service.
    return $services->getConfigFactory()->makeConfig('main');
}, 'InterwikiLookup' => function (MediaWikiServices $services) {
    global $wgContLang;
    // TODO: manage $wgContLang as a service
    $config = $services->getMainConfig();
    return new ClassicInterwikiLookup($wgContLang, ObjectCache::getMainWANInstance(), $config->get('InterwikiExpiry'), $config->get('InterwikiCache'), $config->get('InterwikiScopes'), $config->get('InterwikiFallbackSite'));
}, 'StatsdDataFactory' => function (MediaWikiServices $services) {
    return new BufferingStatsdDataFactory(rtrim($services->getMainConfig()->get('StatsdMetricPrefix'), '.'));
}, 'EventRelayerGroup' => function (MediaWikiServices $services) {
    return new EventRelayerGroup($services->getMainConfig()->get('EventRelayerConfig'));
}, 'SearchEngineFactory' => function (MediaWikiServices $services) {
コード例 #4
0
 /**
  * @param ConfigFactory $oldFactory
  * @param Config[] $configurations
  *
  * @return Closure
  */
 private static function makeTestConfigFactoryInstantiator(ConfigFactory $oldFactory, array $configurations)
 {
     return function (MediaWikiServices $services) use($oldFactory, $configurations) {
         $factory = new ConfigFactory();
         // clone configurations from $oldFactory that are not overwritten by $configurations
         $namesToClone = array_diff($oldFactory->getConfigNames(), array_keys($configurations));
         foreach ($namesToClone as $name) {
             $factory->register($name, $oldFactory->makeConfig($name));
         }
         foreach ($configurations as $name => $config) {
             $factory->register($name, $config);
         }
         return $factory;
     };
 }