Pertama, untuk menambahkan caching ke script , sepertinya tidak terlalu sulit untuk menempatkan Zend_Feed
dan Zend_Cache
bersama - atau cukup bungkus skrip generasi Anda saat ini dengan Zend_Cache
.
Cukup atur cache dengan masa pakai Anda:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Kemudian periksa apakah cache masih valid:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Saya tidak tahu bagaimana Anda membentuk RSS Anda, tetapi Anda dapat impor struktur array ke Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Tentu saja cara terbaik mungkin hanya menggunakan generator umpan Anda saat ini dan menyimpan hasilnya ke file . Gunakan file itu sebagai umpan RSS, lalu gunakan cron/web hooks/queue/apa pun untuk menghasilkan file statis. Itu akan lebih sederhana, dan menggunakan lebih sedikit sumber daya, daripada membuat skrip generasi melakukan caching.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Sekarang tautan umpannya adalah /feed.rss
, dan Anda hanya menjalankan feedGen.php
setiap kali perlu di-refresh. Melayani file statis (bahkan tidak diurai oleh php) berarti lebih sedikit yang harus dilakukan server Anda.