Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Zend Feed Laravel Package

zendframework/zend-feed

Abandoned Zend Framework package for consuming and generating RSS and Atom feeds, with a natural API for reading/modifying feed and entry elements and rendering back to XML. Moved to laminas/laminas-feed.

View on GitHub
Deep Wiki
Context7

Consuming RSS Feeds

Reading a feed

To read an RSS feed, pass its URL to Zend\Feed\Reader\Reader::import():

$channel = Zend\Feed\Reader\Reader::import('http://rss.example.com/channelName');

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.

If any errors occur fetching the feed, a Zend\Feed\Reader\Exception\RuntimeException will be thrown.

Get properties

Once you have a feed object, you can access any of the standard RSS channel properties via the various instance getter methods:

echo $channel->getTitle();
echo $channel->getAuthor();
// etc.

If channel properties have attributes, the getter method will return a key/value pair, where the key is the attribute name, and the value is the attribute value.

$author = $channel->getAuthor();
echo $author['name'];

Most commonly, you'll want to loop through the feed and do something with its entries. Zend\Feed\Reader\Feed\Rss internally converts all entries to a Zend\Feed\Reader\Entry\Rss instance. Entry properties, similarly to channel properties, can be accessed via getter methods, such as getTitle, getDescription, etc.

An example of printing all titles of articles in a channel is:

foreach ($channel as $item) {
    echo $item->getTitle() . "\n";
}

If you are not familiar with RSS, here are the standard elements you can expect to be available in an RSS channel and in individual RSS items (entries).

Required channel elements:

  • title: The name of the channel.
  • link: The URL of the web site corresponding to the channel.
  • description: A sentence (or more) describing the channel.

Common optional channel elements:

  • pubDate: The publication date of this set of content, in RFC 822 date format.
  • language: The language the channel is written in.
  • category: One or more (specified by multiple tags) categories the channel belongs to.

RSS <item> elements do not have any strictly required elements. However, either title or description must be present.

Common item elements:

  • title: The title of the item.
  • link: The URL of the item.
  • description: A synopsis of the item.
  • author: The author's email address.
  • category: One more categories that the item belongs to.
  • comments: URL of comments relating to this item.
  • pubDate: The date the item was published, in RFC 822 date format.

In your code you can always test to see if an element is non-empty by calling the getter:

if ($item->getPropname()) {
    // ... proceed.
}

Where relevant, Zend\Feed supports a number of common RSS extensions including Dublin Core, Atom (inside RSS); the Content, Slash, Syndication, Syndication/Thread extensions; as well as several others.

Please see the official RSS 2.0 specification for further information.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport