Во-первых, чтобы добавить кеширование в сценарий , кажется, что не составит труда поставить Zend_Feed
и Zend_Cache
вместе - или просто оберните ваш текущий сценарий генерации с Zend_Cache
.
Просто настройте кеш со своим временем жизни:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Затем проверьте, действителен ли кеш:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Я не знаю, как вы формируете свой RSS, но вы можете импортировать структуру массива в Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Конечно, лучший способ может состоять в том, чтобы просто использовать ваш текущий генератор каналов и сохранить вывод в файл . Используйте этот файл в качестве канала RSS, затем используйте cron / web hooks / queue / what для генерации статического файла. Это было бы проще и потребляло бы меньше ресурсов, чем использование сценария генерации для кэширования.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Теперь ссылка на фид /feed.rss
, и вы просто запускаете feedGen.php
всякий раз, когда ее нужно обновить. Обслуживание статического файла (даже не анализируемого php) означает меньше для вашего сервера.