Innanzitutto, per aggiungere la memorizzazione nella cache allo script , sembra che non sarebbe troppo difficile inserire Zend_Feed
e Zend_Cache
insieme - o semplicemente avvolgi lo script della generazione attuale con Zend_Cache
.
Basta configurare la cache con la tua vita:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Quindi controlla se la cache è ancora valida:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Non so come formi il tuo RSS, ma puoi importa una struttura di array in Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Ovviamente il modo migliore potrebbe essere semplicemente utilizzare il generatore di feed corrente e salvare l'output in un file . Usa quel file come feed RSS, quindi usa cron/web hooks/queue/whatever per generare il file statico. Sarebbe più semplice e consumerebbe meno risorse rispetto al fatto che lo script di generazione esegua la memorizzazione nella cache.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Ora il link al feed è /feed.rss
, ed esegui semplicemente feedGen.php
ogni volta che ha bisogno di essere rinfrescato. Servire il file statico (nemmeno analizzato da php) significa meno da fare per il tuo server.