<sect1 id="zend.feed.introduction">
    <title>Введение</title>
    <para>
        <code>Zend_Feed</code> предназначен для работы с
        лентами RSS и Atom. Он предоставляет естетственный синтаксис
        (natural syntax) для доступа к элементам лент, атрибутам лент и
        их сообщений, полностью поддерживает изменение структуры лент и
        публикаций с использованием того же синтаксиса и преобразует
        результаты изменений обратно в XML. В будущем эта
        поддержка изменений может обеспечить добавление поддержки Atom
        Publishing Protocol.
    </para>

    <para>
        Программно <code>Zend_Feed</code> состоит из базового класса
        <code>Zend_Feed</code>, абстрактных базовых классов
        <code>Zend_Feed_Abstract</code>
        и <code>Zend_Feed_Entry_Abstract</code> для представления лент и
        их сообщений, реализаций лент и сообщений применительно для RSS и Atom,
        а также "помощников" для обеспечения работы естетственного
        синтаксиса.
    </para>

    <para>
        В примере ниже мы демонстрируем простое получение ленты RSS и
        сохранение нужных данных из ленты в массив PHP, который
        может быть использован для распечатки, сохранения в БД и т.д.
    </para>

    <note>
        <title>Внимание</title>
        <para>
            Многие ленты RSS различаются по набору доступных свойств каналов и
            сообщений. Спецификация RSS предоставляет множество необязательных
            свойств, поэтому имейте это в виду, когда пишете код для работы с
            данными RSS.
        </para>
    </note>

    <example id="zend.feed.introduction.example.rss">
        <title>Использование Zend_Feed в работе с данными ленты RSS</title>
        <programlisting language="php"><![CDATA[
// Извлечение последних новостей Slashdot
try {
    $slashdotRss =
        Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
} catch (Zend_Feed_Exception $e) {
    // неудача при импортировании ленты
    echo "Exception caught importing feed: {$e->getMessage()}\n";
    exit;
}

// Инициализация массива данных каналов
$channel = array(
    'title'       => $slashdotRss->title(),
    'link'        => $slashdotRss->link(),
    'description' => $slashdotRss->description(),
    'items'       => array()
    );

// Обход каналов и сохранение данных
foreach ($slashdotRss as $item) {
    $channel['items'][] = array(
        'title'       => $item->title(),
        'link'        => $item->link(),
        'description' => $item->description()
        );
}
]]>
        </programlisting>
    </example>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
