CodeIgniter имеет встроенную библиотеку кэширования страниц. Но она работает только с целыми страницами, т. е. вы не можете кэшировать часть страницы. Представьте такую ситуацию. Большинство страниц сайта формируется на основе запроса пользователя, например, вы показываете результаты поиска. Кэшировать такие страницы нет никакого смысла, т. к. вероятность того, что посетители будут искать одно и тоже, довольно низкая. В тоже время, на страницах могут находиться одинаковые блоки данных, например, в сайдбаре.
Это могут быть различные виджеты, навигационные меню и т. п. И естественно на их создание тратятся ресурсы и в некоторых случаях довольно ощутимые, т. е. такие блоки можно и нужно кэшировать. Специально для таких случаев я написал небольшую библиотеку (ссылка на архив с ней находится внизу страницы). Порядок работы с библиотекой такой. 1) Копируете файл partialcache. php в папку application/libraries. 2) Указываете размещение файлов кэша. Параметр $config['cache_path'] (в файле application/config/config. php). Т. е. используется та же папка, что и для основного кэша CodeIgniter. 3) Загружаете библиотеку. Можно использовать любой способ загрузки принятый в CodeIgniter. 4) Для сохранения данных в кэш используется метод save($name, $cacheContent), где $name – имя блока данных (можно использовать любую текстовую строку, главное чтобы она была уникальна для каждого блока), $cacheContent – содержимое блока. 5) Метод get($name, $time = 0) загружает данные из кэша. $name – имя блока данных, $time – время жизни кэша (в минутах). Приведу небольшой пример. В одном из прошлых постов, я рассказывал о разделении облака тегов на кластеры и упомянул, что алгоритм достаточно ресурсоемкий. Попробуем кэшировать облако. Прежде всего, подключаем библиотеку.