Генератор RSS с функцией кэширования - PullRequest
1 голос
/ 21 августа 2010

Вам не знаком любой хороший скрипт генератора rss с функцией кэширования?Все сценарии, которые я нашел в сети, пока не поддерживают кеширование!Мне нужно, чтобы содержимое rss генерировалось автоматически из базы данных за указанный период времени.

Заранее спасибо

1 Ответ

3 голосов
/ 21 августа 2010

Во-первых, чтобы добавить кеширование в сценарий , кажется, что не составит труда поставить 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) означает меньше для вашего сервера.

...