Как создать RSS-канал с автообновлением в Zend
Я новичок в Zend Framework и RSS тоже. Я хотел бы создать на своем сайте RSS-канал (конечно, доступный пользователю в XML-файле). Я создал RssController
и соответствующий вид: rss/index.phtml
, Генерация XML-файлов прекрасно работает для меня.
В RssControllers
я имею indexAction
:
public function indexAction()
{
$feedData = array(...);
$feed = Zend_Feed::importArray ( $feedData, 'rss' );
$rssFeed = $feed->saveXML();
$fh = fopen("rss.xml", "w");
fwrite($fh, $rssFeed);
fclose($fh);
}
Как вы можете догадаться, мой rss.xml
файл генерируется каждый раз, когда посещается mysite / rss. Я хотел бы, если это возможно, создать автообновление RSS-канала через некоторый промежуток времени. И, конечно же, не генерировать каждый раз, когда посещение сайта. Как я могу сделать что-то подобное?
2 ответа
Я не уверен, что вы хотите, но:
вам не нужен обработчик файла..
// Disable VIEW/Layout
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$feed = Zend_Feed::importArray ( $feedData, 'rss' );
echo $feed->send();
Таким образом, браузер получает "XML" вместо HTML или чего-либо еще.
У вас есть три способа обновить ваш RSS:
1 - Работа с асинхронной системой
2 - Вставьте URL вашего контроллера в систему CRON (crontab linux или окна планировщика задач) и делайте запросы, когда хотите.
3 - Создайте Zend_Action_Helper, и когда к странице обращаются, вы вызываете это действие.