Zend_Feed-Introduction.xml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <sect1 id="zend.feed.introduction">
  2. <title>Введение</title>
  3. <para>
  4. <code>Zend_Feed</code> предназначен для работы с
  5. лентами RSS и Atom. Он предоставляет естетственный синтаксис
  6. (natural syntax) для доступа к элементам лент, атрибутам лент и
  7. их сообщений, полностью поддерживает изменение структуры лент и
  8. публикаций с использованием того же синтаксиса и преобразует
  9. результаты изменений обратно в XML. В будущем эта
  10. поддержка изменений может обеспечить добавление поддержки Atom
  11. Publishing Protocol.
  12. </para>
  13. <para>
  14. Программно <code>Zend_Feed</code> состоит из базового класса
  15. <code>Zend_Feed</code>, абстрактных базовых классов
  16. <code>Zend_Feed_Abstract</code>
  17. и <code>Zend_Feed_Entry_Abstract</code> для представления лент и
  18. их сообщений, реализаций лент и сообщений применительно для RSS и Atom,
  19. а также "помощников" для обеспечения работы естетственного
  20. синтаксиса.
  21. </para>
  22. <para>
  23. В примере ниже мы демонстрируем простое получение ленты RSS и
  24. сохранение нужных данных из ленты в массив PHP, который
  25. может быть использован для распечатки, сохранения в БД и т.д.
  26. </para>
  27. <note>
  28. <title>Внимание</title>
  29. <para>
  30. Многие ленты RSS различаются по набору доступных свойств каналов и
  31. сообщений. Спецификация RSS предоставляет множество необязательных
  32. свойств, поэтому имейте это в виду, когда пишете код для работы с
  33. данными RSS.
  34. </para>
  35. </note>
  36. <example id="zend.feed.introduction.example.rss">
  37. <title>Использование Zend_Feed в работе с данными ленты RSS</title>
  38. <programlisting language="php"><![CDATA[
  39. // Извлечение последних новостей Slashdot
  40. try {
  41. $slashdotRss =
  42. Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
  43. } catch (Zend_Feed_Exception $e) {
  44. // неудача при импортировании ленты
  45. echo "Exception caught importing feed: {$e->getMessage()}\n";
  46. exit;
  47. }
  48. // Инициализация массива данных каналов
  49. $channel = array(
  50. 'title' => $slashdotRss->title(),
  51. 'link' => $slashdotRss->link(),
  52. 'description' => $slashdotRss->description(),
  53. 'items' => array()
  54. );
  55. // Обход каналов и сохранение данных
  56. foreach ($slashdotRss as $item) {
  57. $channel['items'][] = array(
  58. 'title' => $item->title(),
  59. 'link' => $item->link(),
  60. 'description' => $item->description()
  61. );
  62. }
  63. ]]>
  64. </programlisting>
  65. </example>
  66. </sect1>
  67. <!--
  68. vim:se ts=4 sw=4 et:
  69. -->