コード例 #1
0
 public function testRecacheFallbacksWithHooks()
 {
     global $wgHooks;
     // Use hook to provide updates for messages. This is what the
     // LocalisationUpdate extension does. See bug 68781.
     $wgHooks['LocalisationCacheRecacheFallback'][] = function (LocalisationCache $lc, $code, array &$cache) {
         if ($code === 'ru') {
             $cache['messages']['present-uk'] = 'ru-override';
             $cache['messages']['present-ru'] = 'ru-override';
             $cache['messages']['present-en'] = 'ru-override';
         }
     };
     $lc = new LocalisationCache(array('store' => 'detect'));
     $lc->recache('uk');
     $this->assertEquals(array('present-uk' => 'uk', 'present-ru' => 'ru-override', 'present-en' => 'ru-override'), $lc->getItem('uk', 'messages'), 'Updates provided by hooks follow the normal fallback order.');
 }
コード例 #2
0
 /**
  * @param $code
  */
 public function recache($code)
 {
     parent::recache($code);
     unset($this->mruLangs[$code]);
     $this->mruLangs[$code] = true;
     $this->trimCache();
 }
コード例 #3
0
 /**
  * Helper function to rebuild list of languages codes. Prints the code
  * for each language which is rebuilt.
  * @param array $codes List of language codes to rebuild.
  * @param LocalisationCache $lc Instance of LocalisationCacheBulkLoad (?)
  * @param bool $force Rebuild up-to-date languages
  * @return int Number of rebuilt languages
  */
 private function doRebuild($codes, $lc, $force)
 {
     $numRebuilt = 0;
     foreach ($codes as $code) {
         if ($force || $lc->isExpired($code)) {
             $this->output("Rebuilding {$code}...\n");
             $lc->recache($code);
             $numRebuilt++;
         }
     }
     return $numRebuilt;
 }