[MANUAL] English:
[zend.git] / documentation / manual / en / module_specs / Zend_Feed-Introduction.xml
blob412056286e37d00d482028f2784331d81b14c113
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect1 id="zend.feed.introduction">
4     <title>Introduction</title>
6     <para>
7         <classname>Zend_Feed</classname> provides functionality for consuming <acronym>RSS</acronym>
8         and Atom feeds. It provides a natural syntax for accessing elements of feeds, feed
9         attributes, and entry attributes. <classname>Zend_Feed</classname> also has extensive
10         support for modifying feed and entry structure with the same natural syntax, and turning the
11         result back into <acronym>XML</acronym>. In the future, this modification support could
12         provide support for the Atom Publishing Protocol.
13     </para>
15     <para>
16         Programmatically, <classname>Zend_Feed</classname> consists of a base
17         <classname>Zend_Feed</classname> class, abstract <classname>Zend_Feed_Abstract</classname>
18         and <classname>Zend_Feed_Entry_Abstract</classname> base classes for representing Feeds and
19         Entries, specific implementations of feeds and entries for <acronym>RSS</acronym> and Atom,
20         and a behind-the-scenes helper for making the natural syntax magic work.
21     </para>
23     <para>
24         In the example below, we demonstrate a simple use case of retrieving an
25         <acronym>RSS</acronym> feed and saving relevant portions of the feed data to a simple
26         <acronym>PHP</acronym> array, which could then be used for printing the data, storing to a
27         database, etc.
28     </para>
30     <note>
31         <title>Be aware</title>
33         <para>
34             Many <acronym>RSS</acronym> feeds have different channel and item properties available.
35             The <acronym>RSS</acronym> specification provides for many optional properties, so be
36             aware of this when writing code to work with <acronym>RSS</acronym> data.
37         </para>
38     </note>
40     <example id="zend.feed.introduction.example.rss">
41         <title>Putting Zend_Feed to Work on RSS Feed Data</title>
43         <programlisting language="php"><![CDATA[
44 // Fetch the latest Slashdot headlines
45 try {
46     $slashdotRss =
47         Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
48 } catch (Zend_Feed_Exception $e) {
49     // feed import failed
50     echo "Exception caught importing feed: {$e->getMessage()}\n";
51     exit;
54 // Initialize the channel data array
55 $channel = array(
56     'title'       => $slashdotRss->title(),
57     'link'        => $slashdotRss->link(),
58     'description' => $slashdotRss->description(),
59     'items'       => array()
60     );
62 // Loop over each channel item and store relevant data
63 foreach ($slashdotRss as $item) {
64     $channel['items'][] = array(
65         'title'       => $item->title(),
66         'link'        => $item->link(),
67         'description' => $item->description()
68         );
70 ]]></programlisting>
71     </example>
72 </sect1>
73 <!--
74 vim:se ts=4 sw=4 et:
75 -->