Primero, para agregar almacenamiento en caché al script , parece que no sería demasiado difícil poner Zend_Feed
y Zend_Cache
juntos, o simplemente envuelva su secuencia de comandos de generación actual con Zend_Cache
.
Simplemente configure el caché con su vida:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Luego verifique si el caché sigue siendo válido:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
No sé cómo forma su RSS, pero puede importar una estructura de matriz a Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Por supuesto, la mejor manera puede ser simplemente usar su generador de feeds actual y guardar el resultado en un archivo . Use ese archivo como fuente RSS, luego use cron/web hooks/queue/whatever para generar el archivo estático. Eso sería más simple y usaría menos recursos que hacer que el script de generación haga el almacenamiento en caché.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Ahora el enlace del feed es /feed.rss
, y simplemente ejecuta feedGen.php
cada vez que necesite ser actualizado. Servir el archivo estático (ni siquiera analizado por php) significa menos trabajo para su servidor.