Først for at føje caching til scriptet , det ser ud til, at det ikke ville være for svært at sætte Zend_Feed
og Zend_Cache
sammen - eller bare pak dit nuværende generationsscript med Zend_Cache
.
Bare konfigurer cachen med din levetid:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Tjek derefter om cachen stadig er gyldig:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Jeg ved ikke, hvordan du danner din RSS, men du kan importer en matrixstruktur til Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Selvfølgelig den bedste måde kan være at bare bruge din nuværende feed-generator og gemme outputtet til en fil . Brug den fil som RSS-feed, og brug derefter cron/webhooks/queue/whatever til at generere den statiske fil. Det ville være enklere og bruge færre ressourcer end at lade generationsscriptet foretage cachen.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Nu er feedlinket /feed.rss
, og du kører bare feedGen.php
når den skal genopfriskes. At betjene den statiske fil (ikke engang parset af php) betyder mindre for din server at gøre.