本文整理汇总了PHP中Interwiki::loadFromArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Interwiki::loadFromArray方法的具体用法?PHP Interwiki::loadFromArray怎么用?PHP Interwiki::loadFromArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Interwiki
的用法示例。
在下文中一共展示了Interwiki::loadFromArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: load
/**
* Load the interwiki, trying first memcached then the DB
*
* @param string $prefix The interwiki prefix
* @return Interwiki|bool Interwiki if $prefix is valid, otherwise false
*/
protected static function load($prefix)
{
global $wgInterwikiExpiry;
$iwData = array();
if (!Hooks::run('InterwikiLoadPrefix', array($prefix, &$iwData))) {
return Interwiki::loadFromArray($iwData);
}
$cache = ObjectCache::getMainWANInstance();
if (!$iwData) {
$key = wfMemcKey('interwiki', $prefix);
$iwData = $cache->get($key);
if ($iwData === '!NONEXISTENT') {
// negative cache hit
return false;
}
}
// is_array is hack for old keys
if ($iwData && is_array($iwData)) {
$iw = Interwiki::loadFromArray($iwData);
if ($iw) {
return $iw;
}
}
$db = wfGetDB(DB_SLAVE);
$row = $db->fetchRow($db->select('interwiki', self::selectFields(), array('iw_prefix' => $prefix), __METHOD__));
$iw = Interwiki::loadFromArray($row);
if ($iw) {
$mc = array('iw_url' => $iw->mURL, 'iw_api' => $iw->mAPI, 'iw_local' => $iw->mLocal, 'iw_trans' => $iw->mTrans);
$cache->set($key, $mc, $wgInterwikiExpiry);
return $iw;
}
// negative cache hit
$cache->set($key, '!NONEXISTENT', $wgInterwikiExpiry);
return false;
}
示例2: load
/**
* Load the interwiki, trying first memcached then the DB
*
* @param string $prefix The interwiki prefix
* @return Interwiki|bool Interwiki if $prefix is valid, otherwise false
*/
protected static function load($prefix)
{
global $wgInterwikiExpiry;
$iwData = array();
if (!Hooks::run('InterwikiLoadPrefix', array($prefix, &$iwData))) {
return Interwiki::loadFromArray($iwData);
}
if (is_array($iwData)) {
$iw = Interwiki::loadFromArray($iwData);
if ($iw) {
return $iw;
// handled by hook
}
}
$iwData = ObjectCache::getMainWANInstance()->getWithSetCallback(wfMemcKey('interwiki', $prefix), $wgInterwikiExpiry, function ($oldValue, &$ttl, array &$setOpts) use($prefix) {
$dbr = wfGetDB(DB_SLAVE);
$setOpts += Database::getCacheSetOptions($dbr);
$row = $dbr->selectRow('interwiki', Interwiki::selectFields(), array('iw_prefix' => $prefix), __METHOD__);
return $row ? (array) $row : '!NONEXISTENT';
});
if (is_array($iwData)) {
return Interwiki::loadFromArray($iwData) ?: false;
}
return false;
}
示例3: load
/**
* Load the interwiki, trying first memcached then the DB
*
* @param $prefix string The interwiki prefix
* @return Boolean: the prefix is valid
*/
protected static function load($prefix)
{
global $wgMemc, $wgInterwikiExpiry;
$iwData = false;
if (!wfRunHooks('InterwikiLoadPrefix', array($prefix, &$iwData))) {
return Interwiki::loadFromArray($iwData);
}
if (!$iwData) {
$key = wfMemcKey('interwiki', md5($prefix));
$iwData = $wgMemc->get($key);
if ($iwData === '!NONEXISTENT') {
return false;
// negative cache hit
}
}
if ($iwData && is_array($iwData)) {
// is_array is hack for old keys
$iw = Interwiki::loadFromArray($iwData);
if ($iw) {
return $iw;
}
}
$db = wfGetDB(DB_SLAVE);
$row = $db->fetchRow($db->select('interwiki', '*', array('iw_prefix' => $prefix), __METHOD__));
$iw = Interwiki::loadFromArray($row);
if ($iw) {
$mc = array('iw_url' => $iw->mURL, 'iw_api' => $iw->mAPI, 'iw_local' => $iw->mLocal, 'iw_trans' => $iw->mTrans);
$wgMemc->add($key, $mc, $wgInterwikiExpiry);
return $iw;
} else {
$wgMemc->add($key, '!NONEXISTENT', $wgInterwikiExpiry);
// negative cache hit
}
return false;
}
示例4: load
/**
* Load the interwiki, trying first memcached then the DB
*
* @param $prefix The interwiki prefix
* @return bool The prefix is valid
* @static
*
*/
protected static function load($prefix)
{
global $wgMemc, $wgInterwikiExpiry;
global $wgLanguageNames;
$key = wfMemcKey('interwiki', $prefix);
$mc = $wgMemc->get($key);
$iw = false;
if ($mc && is_array($mc)) {
// is_array is hack for old keys
$iw = Interwiki::loadFromArray($mc);
if ($iw) {
return $iw;
}
}
# $$$ Sean: This is a hack to get the interwiki links working
# but only accept a prefix that is a valid language
if (isset($prefix, $wgLanguageNames[$prefix]) && '' != $wgLanguageNames[$prefix]) {
$iw = new Interwiki();
$iw->mURL = $prefix . '.wiki';
$iw->mLocal = 0;
$iw->mTrans = 0;
} else {
$iw = false;
}
/*
$db = wfGetDB( DB_SLAVE );
$row = $db->fetchRow( $db->select( 'interwiki', '*', array( 'iw_prefix' => $prefix ),
__METHOD__ ) );
$iw = Interwiki::loadFromArray( $row );
*/
# $$$ end of hack
if ($iw) {
$mc = array('iw_url' => $iw->mURL, 'iw_local' => $iw->mLocal, 'iw_trans' => $iw->mTrans);
$wgMemc->add($key, $mc, $wgInterwikiExpiry);
return $iw;
}
return false;
}
示例5: load
/**
* Load the interwiki, trying first memcached then the DB
*
* @param $prefix The interwiki prefix
* @return Boolean: the prefix is valid
*/
protected static function load($prefix)
{
global $wgMemc, $wgInterwikiExpiry;
$key = wfMemcKey('interwiki', $prefix);
$mc = $wgMemc->get($key);
if ($mc && is_array($mc)) {
// is_array is hack for old keys
$iw = Interwiki::loadFromArray($mc);
if ($iw) {
return $iw;
}
}
$db = wfGetDB(DB_SLAVE);
$row = $db->fetchRow($db->select('interwiki', '*', array('iw_prefix' => $prefix), __METHOD__));
$iw = Interwiki::loadFromArray($row);
if ($iw) {
$mc = array('iw_url' => $iw->mURL, 'iw_api' => $iw->mAPI, 'iw_local' => $iw->mLocal, 'iw_trans' => $iw->mTrans);
$wgMemc->add($key, $mc, $wgInterwikiExpiry);
return $iw;
}
return false;
}