Ten eerste, om caching toe te voegen aan het script , lijkt het niet zo moeilijk om Zend_Feed
en Zend_Cache
samen - of verpak je huidige generatie script gewoon met Zend_Cache
.
Stel de cache gewoon in met je leven:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Controleer vervolgens of de cache nog geldig is:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Ik weet niet hoe je je RSS vormt, maar je kunt importeer een matrixstructuur naar Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Natuurlijk de beste manier kan zijn om gewoon uw huidige feedgenerator te gebruiken en de uitvoer op te slaan in een bestand . Gebruik dat bestand als de RSS-feed en gebruik vervolgens cron/web hooks/queue/whatever om het statische bestand te genereren. Dat zou eenvoudiger zijn en minder bronnen gebruiken dan het generatiescript de caching te laten doen.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Nu is de feedlink /feed.rss
, en je draait gewoon feedGen.php
wanneer het moet worden ververst. Het aanbieden van het statische bestand (zelfs niet geparseerd door php) betekent minder voor uw server om te doen.