Zend_Cache
Я бы, вероятно, использовал для этого библиотеку Zend Frameworks Zend_Cache
.
Вы можете просто использовать этот компонент, не используя весь фреймворк.
Перейдите на Страница загрузки Zend Framework и загрузите последнюю версию.
После загрузки файлов ядра вам нужно будет включить Zend_Cache в ваш проект. Zend_Cache документы.
Вы уже решили, как хотите кэшировать свои данные?Вы используете файловую систему?Или ты memcache?После того, как вы знаете, какой тип данных вы собираетесь использовать, вам нужно использовать определенный бэкэнд Zend_Cache.
Бэкенды Zend_Cache / Фронтенды Zend_Cache
- Вам необходимо использовать бэкэнд (как вы кешируете)в хранилище то, что вы хотите кэшировать) и
- Вам нужно использовать внешний интерфейс (как вы на самом деле хотите кэшировать .. как, например, использование буфера или кэширование результатов и т. д.)
Документация бэкэнда: Бэкенды Zend_Cache Документация веб-интерфейса: Фронтенды Zend_Cache
Так вы бы сделали что-то вроде этого ...
<?php
// configure caching backend strategy
$backend = new Zend_Cache_Backend_Memcached(
array(
'servers' => array( array(
'host' => '127.0.0.1',
'port' => '11211'
) ),
'compression' => true
) );
// configure caching frontend strategy
$frontend = new Zend_Cache_Frontend_Output(
array(
'caching' => true,
'cache_id_prefix' => 'myApp',
'write_control' => true,
'automatic_serialization' => true,
'ignore_user_abort' => true
) );
// build a caching object
$cache = Zend_Cache::factory( $frontend, $backend );
Это создаст кеш, использующий механизмы кэширования Zend_Cache_Frontend_Output
.
Для использования Zend_Cache_Frontend_Output
, который вы хотите, это будет simple .Вместо ядра вы бы использовали output
.Опции, которые вы передаете, идентичны.Затем для его использования вы должны:
Zend_Cache_Frontend_Output - Использование
// if it is a cache miss, output buffering is triggered
if (!($cache->start('mypage'))) {
// output everything as usual
echo 'Hello world! ';
echo 'This is cached ('.time().') ';
$cache->end(); // output buffering ends
}
echo 'This is never cached ('.time().').';
Полезный блог: http://perevodik.net/en/posts/14/
Извините, этот вопрос занял больше времени, чем ожидалось, и много ответовнаписано вижу!