Как создать 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, и когда к странице обращаются, вы вызываете это действие.

Другие вопросы по тегам