Відключити кешування phpbb

У форумном движку phpBB кешування реалізовано через файли. Кешируєтся все підряд. Наприклад, кожен sql-запит кладеться в окремий файл, а так як для кожного користувача вибірка з бази може відрізнятися, то кеш виростає до 150 000 файлів - реальний приклад з життя (на форумі всього лише 70 тем і 700 користувачів). Все це дерьміще лежить в одній папці і трохи навантажує читання з диска. Але в моєму випадку проблема була в оновленні кеша. Справа в тому, що кешуються ще й шаблони. Тому при зміні шаблону, потрібно оновити кеш - це можна зробити через адмінку. Ось тут і починаються проблеми з видаленням з папки з десятками тисяч файлів. Скрипт видалення кешу падає з помилкою 500.

Здавалося б, стандартне рішення - відключити кешування sql-запитів в адмінці, але такі настройки відсутні. Довелося покопатися в исходниках.

Відключення кешування sql-запитів

1) Файл /includes/db/mysql.php
Метод sql_query ()

2) Файл /includes/acm/acm_file.php
Метод sql_save ()
У самий початок методу пишемо рядок
return;

Відключення кешування шаблонів

файл /includes/template.php
Метод sql_save ()

Тепер шаблони будуть кожен раз братися не з кешу, а перекомпіліровать з початкових кодів. Вихідні шаблони зазвичай лежать в папці / styles / prosilver / template /

Але краще включити кешування шаблонів. Багато місця вони не займають (20-50 файлів в кеші), а компіляція зроблена через регулярні вирази, що за визначенням не швидко. Відключити кешування можна при редагуванні шаблонів, коли ми не можемо видалити старі версії з кешу.

Схожі статті