Feed Rss



Янв 22 2010

Кеширование участков представления

Рубрика: PHP Автор: Алексей Токарь

При разработке веб приложений, необходимо не забывать уделять должное внимание кешированию как данных, так и участки сгенерированого HTML.

Код, отвечающий за кеширование участка представления в Zend Framework’е, выглядит приблизительно так:

[ some html skipped ]
 
< ?php 
$id = "some_cache_id";
// if it is a cache miss, output buffering is triggered
if ( !( $cache->start( $id ) ) ) { ?>
 
[ some html skipped ]
 
< ?php $cache->end();  } ?>
 
[ some html skipped ]

Все отлично. Участок кешируется. Через указанный промежуток времени кеш обновляется. Но что делать, если мы изменили представление? Нужно либо ждать пока обновится кеш участка, либо обновить идентификатор кеша для этого участка. В первом случае это часто бывает недопустимо по причине необходимости моментального изменения, во втором – можно просто забыть, либо вы акуратист и не соглашаетесь с невразумительными именами типа «cache_page_num123″.

Вот для таких случаев нам поможет простой участок кода:

$id = "some_cache_id";
$id = md5( $id . filemtime( __FILE__ ) );

Теперь при каждом изменении файла, кеш будет автоматически обновляться при первом же обращении.

Единственное о чем остается думать – есть ли сборщик мусора в выбранном вами кеширующем механизме.

Понравился пост? Подпишись на RSS!

Метки: , ,

Один ответ на “Кеширование участков представления”

  1. Sych says:

    Если ресурс довольно нагружен а участок который кэшируется довольно сложен – стоит так же не забывать о эффекте кусающей собачки – но это уже совсем другая история.

Оставить комментарий