1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
<sect1 id="zend.feed.introduction">
<title>Wprowadzenie</title>
<para>
<code>Zend_Feed</code> zapewnia funkcjonalność umożliwiającą przetwarzanie
kanałów informacyjnych RSS oraz Atom. Zapewnia ona naturalną składnię umożliwiającą
dostęp do elementów kanałów informacyjnych, ich atrybutów oraz atrybutów samych wpisów.
<code>Zend_Feed</code> daje także obszerne wsparcie w modyfikowaniu kanałów
i struktury wpisów w ten sam naturalny sposób i umożliwia zapisanie rezultatów
jako XML. W przyszłości klasa ma zapewnić obsługę protokołu publikowania Atom
(Atom Publishing Protocol).
</para>
<para>
Programowo <code>Zend_Feed</code> składa się z bazowej klasy <code>Zend_Feed</code>,
abstrakcyjnych klas <code>Zend_Feed_Abstract</code> oraz <code>Zend_Feed_Entry_Abstract</code>
reprezentujących kanały informacyjne i ich wpisy, specyficznych implementacji
kanałów i wpisów dla RSS i Atom, oraz z pomocników odpowiedzialnych za
naturalną składnię.
</para>
<para>
W przykładzie poniżej pokazujemy prosty przykład odbierania danych RSS
i zapisywania potrzebnych części danych kanału do prostej tablicy PHP,
która może być potem użyta do wyświetlenia danych, zapisania ich do bazy
danych itp.
</para>
<note>
<title>Bądż ostrożny</title>
<para>
Wiele kanałów RSS ma dostępne różne właściwości samego kanału i jego elementów.
Specyfikacja RSS umożliwia użycie wielu opcjonalnych parametrów, więc
bądź ostrożny gdy będziesz pisał kod pracujący z RSS.
</para>
</note>
<example id="zend.feed.introduction.example.rss">
<title>Użycie Zend_Feed do pobierania danych RSS</title>
<programlisting role="php"><![CDATA[
// Ściągamy najnowsze nagłówki ze Slashdot
try {
$slashdotRss =
Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
} catch (Zend_Feed_Exception $e) {
// importowanie danych nie udało się
echo "Exception caught importing feed: {$e->getMessage()}\n";
exit;
}
// inicjalizacja tablicy z danymi kanału
$channel = array(
'title' => $slashdotRss->title(),
'link' => $slashdotRss->link(),
'description' => $slashdotRss->description(),
'items' => array()
);
// Pętla po każdym elemencie kanału i zapisanie potrzebnych danych
foreach ($slashdotRss as $item) {
$channel['items'][] = array(
'title' => $item->title(),
'link' => $item->link(),
'description' => $item->description()
);
}
]]>
</programlisting>
</example>
</sect1>
|