Първо, да добавите кеширане към скрипта , изглежда, че няма да е трудно да се постави 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/каквото и да е, за да генерирате статичния файл. Това би било по-просто и би използвало по-малко ресурси, отколкото скриптът за генериране да извършва кеширането.
//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) означава по-малко за вашия сървър.