Erstens, um Caching zum Skript hinzuzufügen , scheint es nicht allzu schwer zu sein Zend_Feed
und Zend_Cache
zusammen - oder verpacken Sie einfach Ihr Skript der aktuellen Generation mit Zend_Cache
.
Richten Sie einfach den Cache mit Ihrer Lebenszeit ein:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Prüfen Sie dann, ob der Cache noch gültig ist:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Ich weiß nicht, wie Sie Ihr RSS erstellen, aber Sie können importieren Sie eine Array-Struktur nach Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Natürlich der beste Weg kann darin bestehen, einfach Ihren aktuellen Feed-Generator zu verwenden und die Ausgabe in einer Datei zu speichern . Verwenden Sie diese Datei als RSS-Feed und verwenden Sie dann cron/web hooks/queue/whatever, um die statische Datei zu generieren. Das wäre einfacher und würde weniger Ressourcen verbrauchen, als wenn das Generierungsskript das Caching übernimmt.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Jetzt lautet der Feed-Link /feed.rss
, und Sie führen einfach feedGen.php
aus wann immer es aufgefrischt werden muss. Das Bereitstellen der statischen Datei (nicht einmal von PHP geparst) bedeutet weniger Arbeit für Ihren Server.