Zend_Feed-Introduction.xml 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.feed.introduction">
  5. <title>導入</title>
  6. <para>
  7. <classname>Zend_Feed</classname> は、<acronym>RSS</acronym> や Atom のフィードを扱う機能を提供します。
  8. フィードの要素や属性、そしてエントリの属性に、自然な方法でアクセスできるようになります。
  9. また、<classname>Zend_Feed</classname> でフィードやエントリの構造を変更し、
  10. その結果を <acronym>XML</acronym> に書き戻すという拡張機能もあります。将来的には Atom Publishig Protocol
  11. (AtomPP) にも対応させる予定です。
  12. </para>
  13. <para>
  14. <classname>Zend_Feed</classname> の構成は、基底クラス <classname>Zend_Feed</classname>、
  15. フィードやエントリを扱うための基底抽象クラス <classname>Zend_Feed_Abstract</classname>
  16. および <classname>Zend_Feed_Entry_Abstract</classname>、<acronym>RSS</acronym> や Atom
  17. 用のフィードクラスとエントリクラスの実装、
  18. そして自然な方法でそれらを操作するためのヘルパーから成り立っています。
  19. </para>
  20. <para>
  21. 以下では、<acronym>RSS</acronym> フィードの取得、
  22. フィードデータの <acronym>PHP</acronym> 配列への変換、データの表示、
  23. データベースへの保存などの簡単な使用例を示します。
  24. </para>
  25. <note>
  26. <title>注意</title>
  27. <para>
  28. <acronym>RSS</acronym> フィードによって、使用できるチャネルやアイテムのプロパティが違います。
  29. <acronym>RSS</acronym> の仕様ではオプションのプロパティが多く定義されているので、
  30. <acronym>RSS</acronym> データを扱うコードを書く際にはこのことに注意しましょう。
  31. </para>
  32. </note>
  33. <example id="zend.feed.introduction.example.rss">
  34. <title>Zend_Feed による RSS フィードデータの使用</title>
  35. <programlisting language="php"><![CDATA[
  36. // 最新の Slashdot ヘッドラインを取得します
  37. try {
  38. $slashdotRss =
  39. Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
  40. } catch (Zend_Feed_Exception $e) {
  41. // フィードの読み込みに失敗しました
  42. echo "フィードの読み込み中に例外が発生: {$e->getMessage()}\n";
  43. exit;
  44. }
  45. // チャネルデータの配列を初期化します
  46. $channel = array(
  47. 'title' => $slashdotRss->title(),
  48. 'link' => $slashdotRss->link(),
  49. 'description' => $slashdotRss->description(),
  50. 'items' => array()
  51. );
  52. // チャネルの各項目をループし、関連するデータを保存します
  53. foreach ($slashdotRss as $item) {
  54. $channel['items'][] = array(
  55. 'title' => $item->title(),
  56. 'link' => $item->link(),
  57. 'description' => $item->description()
  58. );
  59. }
  60. ]]></programlisting>
  61. </example>
  62. </sect1>
  63. <!--
  64. vim:se ts=4 sw=4 et:
  65. -->