ВходПользовательПароль
   
Регистрация
Регистрация
Помощь
Помощь
Поиск
Поиск
Gosudar.com.ru  
  

Меню сайта
Навигация
Объявления Объявления
Блоги Блоги
Файловый архив Файловый архив
Последние Последние
Гостевая Гостевая
Контакты Контакты
Личный Раздел
Вход Вход
Регистрация Регистрация
Cms R3-born
Библиотека Библиотека
Файлы R3-born Файлы R3-born
Разработка(блог) Разработка(блог)
Демо-модули
Фотоальбом Фотоальбом
Новости Новости
Форум Форум

Счётчик
5636856368563685636856368
Главная » Объявления » acm cache phpbb2

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:
Подсветка синтаксиса : PHP
function 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 более расширенно это использовалось, можно посмотреть там для наглядности.... Wink

У Вас нет прав чтобы скачать файл!!!
Только зарегистрированные пользователи могут скачать этот аттач.

Автор: Gosudar  •  Обновлено: Декабрь 14 2015, 23:12  •  Трекбек URL для этой записи: Трекбек

Кто онлайн
Кто онлайн
Кто онлайн Всего зарегистрированных пользователей: 405
Последний зарегистрированный пользователь: MugenEi
Сейчас посетителей на сайте: 64, из них зарегистрированных: 0, скрытых: 0, гостей: 59, ботов: 5
Больше всего посетителей (302) здесь было Июль 27 2023, 12:54
Зарегистрированные пользователи: нет
Боты : AhrefsBot (3), Majestic-12, Yandex
Легенда: Админ, Зам.админа, ViP, Спамеры
Эти данные основаны на активности пользователей за последние пять минут

Вход
Вход
Пользователь:    Пароль:     Автоматически входить при каждом посещении     

Powered by R3-Born² © 2024
Все логотипы и торговые марки являются собственностью их законных владельцев.
Правила пользования | Полис Секретности

Valid XHTML 1.0 Transitional SPECIALIST® Online Certified PHP Specialist Valid CSS!