|
|
Меню сайта |
|
|
Счётчик |
|
|
|
| acm cache phpbb2 | |
acm cache phpbb2 |
Система кеширования когда-то выдранная из phpbb2.2 работало в R3-born версии 0.1.4
Class acm cache - кеширование sql-запросов для уменьшения нагрузки на базу данных. Кешируется все запросы, кроме UPDATE, INSERT и т.д. и т.п.
В файле includes/db/acm/acm_functions.php перечислены запрещенные таблицы для кеширования
Цитата: | SESSIONS_TABLE,
SEARCH_TABLE,
SEARCH_MATCH_TABLE,
SEARCH_WORD_TABLE |
Подключается просто в config.php прописываем
Код: | define('SQL_CACHE_ON', ON); // Enable (TRUE) or Disable (FALSE) the ACM SQL Cache - If you experience problems disable this |
В common.php
php: | Подсветка синтаксиса : PHP// ACM (Cache)
// Taken From phpBB 3.x (beta) and made to work in R3-born
$acm_prefix = "";
if ( ($dbms == 'mysql' || $dbms == 'mysql4') && defined('SQL_CACHE_ON') && SQL_CACHE_ON == TRUE)
{
include_once (ROOT_PATH . 'includes/db/acm/acm_file.' . PHP_EXT ); // Thank You phpBB Group
include(ROOT_PATH . 'includes/db/' . $acm_prefix . $dbms . '.' . PHP_EXT );
}
else
{
require(ROOT_PATH . 'includes/db/' . $dbms . '.' . PHP_EXT );
}
Parsed in 0.198 seconds, using GeSHi 1.0.8.11. Created cache - 22.11.19 7:37 |
Теперь вместо стандартной можно использовать вот такую функцию, и вгонять в неё для кеширования прочие config-таблицы (attach_config, album_config, ... etc)
php: | Подсветка синтаксиса : PHPfunction obtain_config ($table = CONFIG_TABLE )
{
global $db;
// Get core or module wide config data. If this fails then we output a CRITICAL_ERROR since basic information is not available
// ACM Cache
if ( defined('CACHE_ON') && CACHE_ON == TRUE)
{
// Yes - ACM cache
global $cache;
// Check config table
if ( $table == CONFIG_TABLE )
{
// check data_global
if ($config = $cache->get('_global'))
{
$sql = 'SELECT *
FROM ' . CONFIG_TABLE ;
if (!($result = $db->sql_query($sql)))
{
message_die (CRITICAL_ERROR , 'Could not query config information', '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
$config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
}
else
{
$config = $cached_config = array();
$sql = 'SELECT *
FROM ' . CONFIG_TABLE ;
if (!($result = $db->sql_query($sql)))
{
message_die (CRITICAL_ERROR , 'Could not query config information', '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
$config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
$cache->put('_global', $cached_config);
unset($cached_config);
}
}
else
{
// other table r3born_*_config
global $table_prefix;
$repl = "_";
$tmp_table = str_replace($table_prefix, $repl, $table);
if($cache->exists($tmp_table))
{
$config = $cache->get($tmp_table);
}
else
{
$sql = "SELECT * FROM " . $table;
if(!$result = $db->sql_query($sql))
{
message_die (CRITICAL_ERROR , 'Could not query config information from ' . $table, '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
$cache->put($tmp_table, $config);
}
return $config;
}
}
else
{
// No - ACM cache
$sql = 'SELECT * FROM ' . $table;
if( !($result = $db->sql_query($sql)) )
{
message_die (CRITICAL_ERROR , 'Could not query config information from ' . $table, '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
return $config;
}
return $config;
}
Parsed in 0.260 seconds, using GeSHi 1.0.8.11. Created cache - 22.11.19 7:37 |
Для перекомпиляции кеша используем $cache->unload();
В ядре R3-born старой версии 0.1.5 более расширенно это использовалось, можно посмотреть там для наглядности....
|
Автор: Gosudar • Обновлено: Декабрь 14 2015, 23:12 • Трекбек URL для этой записи: Трекбек
|
Добавить комментарий
Необходимые поля отмечены - * В целях безопасности Ваш IP адрес будет записан.
| Кто онлайн | |
Кто онлайн |
|
Всего зарегистрированных пользователей: 406 Последний зарегистрированный пользователь: MugenEi |
Сейчас посетителей на сайте: 58, из них зарегистрированных: 0, скрытых: 0, гостей: 51, ботов: 7 Больше всего посетителей (327) здесь было Июнь 18 2024, 20:00 Зарегистрированные пользователи: нет Боты : AhrefsBot (5), IBM oBot, Google |
Легенда: Админ, Зам.админа, ViP, Спамеры |
Эти данные основаны на активности пользователей за последние пять минут |
|
|
|