Consuming Atom Feeds

Zend\Feed\Reader\Feed\Atom is used in much the same way as Zend\Feed\Reader\Feed\Rss. It provides the same access to feed-level properties and iteration over entries in the feed. The main difference is in the structure of the Atom protocol itself. Atom is a successor to RSS; it is a more generalized protocol and it is designed to deal more easily with feeds that provide their full content inside the feed, splitting RSS' description tag into two elements, summary and content, for that purpose.

Basic Use of an Atom Feed

Read an Atom feed and print the title and summary of each entry:

$feed = Zend\Feed\Reader\Reader::import('http://atom.example.com/feed/');
echo 'The feed contains ' . $feed->count() . ' entries.' . "\n\n";
foreach ($feed as $entry) {
    echo 'Title: ' . $entry->getTitle() . "\n";
    echo 'Description: ' . $entry->getDescription() . "\n";
    echo 'URL: ' . $entry->getLink() . "\n\n";
}

Importing requires an HTTP client

To import a feed, you will need to have an HTTP client available.

If you are not using zend-http, you will need to inject Reader with the HTTP client. See the section on providing a client to Reader.

In an Atom feed, you can expect to find the following feed properties:

Atom entries commonly have the following properties:

Where relevant, Zend\Feed supports a number of common RSS extensions including Dublin Core; Content, Slash, Syndication, and Syndication/Thread; and several others in common use on blogs.

For more information on Atom and plenty of resources, see http://www.atomenabled.org/.