
Продолжаю тему кэширования предыдущего поста. Так как там мы только набросали наброски, попробуем привести в божеский вид.
Если мы откроем файл кэша, то можем посмотреть, сколько всего у нас там есть, всё это нужно, но не для полной закэшированной страницы.
В среднем, при сохранении в кэш страницы нашим плагином, разница в размере файла будет где то в 10 раз, так как мы сохраняем нам только нужный результат.
Для примера, я пытался не вклиниваться в index.php файл и на событие OnHandleRequest вывести свой кэш, как видите - результат не стоит этого.
Я установил 2 расширения getResources и getPage (берём популярные, можно для навигации и pageNav).
Результат вывода ресурса с файлового кэша.
0.0366 s модекса кэш FileCache. 0.030276 s через плагин SuperCache на OnHandleRequest FileCache 0.000918 s. SuperCache FileCache
Как я уже упомянул в предыдущем топике, что инициализация забирает очень много времяни (очень - понятие относительное), но вот давайте представим когда у вас много или очень много разных пакетов и любителей использовать addExtensionPackage(). т.е. нужно или не нужно, но мы грузим все свои классы (так как разработчику меньше париться и везде доступно :), т.е. каждый метод имеет своё место.
Лирику отставим, перейдём к делу
ещё один тест с кэшем APC:
0.0339 s модекса кэш APCCache 0.00073 s SuperCache APCCache
Ну и теперь про сам плагин superCache. Почему superCache? Моё мнение, что быстрее уже нельзя просто, единственное можно инклудить ещё раньше, не подгружая конфиг и кэш настроек модекса, а просто в ручную вбить нужные параметры, тогда скорость с APC кэшем будет в приделах 0.0004 - 0.0006 s
Про настройки плагина
На данный момент плагин работает с файловым и APC кэшем.
После установки пакета, вставьте инклуд в файл index.php, примерно 40 строка после
if (!defined('MODX_CORE_PATH')) define('MODX_CORE_PATH', dirname(__FILE__) . '/core/');вставить:
include_once MODX_CORE_PATH.'components/supercache/supercache_read_cache.php';перед инклудом классов MODX
При создании ресурса, во вкладке "Настройки", у вас появиться чекбокс Включить superCache.
Настройки по умолчанию находятся в вкладке "Параметры" плагина superCache
- cs_cache_checkbox_defaulr - ставить чекбокс superCache активный при создании нового ресурса
- sc_expires - время жизни кэша (в секундах), если нуль (0), то кэш будет удалён при обнавлении ресурса или очистки кэша
- sc_out - два параметра выбора:
- Treated not cached tags - Выводиться полностью закэшированная страница (рекомендуеться)
- Untreated not cached tags - Не кэшированные теги выводяться не обработанные (для опытных пользователей)
При очистки кэша и создания/сохранения ресурса кэш полностью убиваеться. (пока по принципу MODX).
Кэширование проверял так-же и с getPage, но параметр sc_out должен быть обязательно быть Treated not cached tags, так как в getPage идут не кэшированные вызовы.
Пока всё, вроде комментарии в коде проставленны, если есть вопросы задавайте.
В следующем топике разберём пример создания новостной страницы с выводом снипета последних новостей, и научимся управлять кэшем, создадим алгоритм работы и немного усовершенствуем наш плагин, чтобы не очищать весь кэш сайта.
2 Комментария
Нужна простенькая галерея, но при этом имеющая хороший функционал