Отключение кеширования стилей phpBB
Столкнулся с задачей верстать под phpBB. Но как известно, там реализовано кеширование стилей, которое очень мешает при изменении шаблона. Поиски дали вариант с удалением папки кеша и отключением вывода ошибок, но меня такой вариант не устроил.
Я пошел другим путем. Зная то, что кеш файлы создаются при каждой точке входа, если они отсутствуют, я решил их просто, предварительно удалять. Т.е. перед тем как отдать управление в скрипт мы чистим папку кеша.
Для того чтобы проделать такой трюк, требуется всего-то добавить в конец config.php, пару строчек:
в конец перед ?> добавляем
1 2 3 4 5 6 |
define('DELETE_CACHE', true); if (defined('DELETE_CACHE') && file_exists('./cache')) foreach (glob('./cache/*.php') as $cache_file) unlink($cache_file); |
теперь все просто: на время отладки, ставим
1 2 3 |
define('DELETE_CACHE', true); |
после того как все сделали и можно кешировать шаблон, меняем на
1 2 3 |
define('DELETE_CACHE', false); |
и все прекрасно работает.
(!) перед редактированием и тестированием работы, не забудьте сделать резервную копию папок форума
--[добавлено, 06.02.2016]--
В связи с тем, что phpBB перешел на шаблонизатор twig решение из 2012 года не работает. Но хорошая новость в том, что я вновь столкнулся с правками дизайна, и вот исправленное решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
define('DELETE_CACHE', true); if (defined('DELETE_CACHE') && is_dir('./cache')) { // clean up twig folder if (is_dir('./cache/twig')) { $rrmdir = function ($dir) use (&$rrmdir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (is_dir($dir."/".$object)) $rrmdir($dir."/".$object); else unlink($dir."/".$object); } } rmdir($dir); } }; $rrmdir('./cache/twig'); } // clean up cache folder foreach (glob('./cache/*.php') as $cache_file) unlink($cache_file); } |
И хочу обратить Ваше внимание на то, что "да", данный хак замедляет работу форума. Но он предназначен исключительно для того времени, в которое вы ведете работы. После окончания работ, просто отключайте его с помощью установки DELETE_CACHE в false, либо попросту комментируйте/удаляйте добавленный код.
Author: | Tags: /
| Rating:
5 comments.
Write a comment