Mercurial > hg > isophonics-drupal-site
diff vendor/zendframework/zend-feed/doc/book/intro.md @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/zendframework/zend-feed/doc/book/intro.md Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,62 @@ +# Introduction + +`Zend\Feed` provides functionality for consuming RSS and Atom feeds. It provides +a natural syntax for accessing elements of feeds, feed attributes, and entry +attributes. `Zend\Feed` also has extensive support for modifying feed and entry +structure with the same natural syntax, and turning the result back into XML. +In the future, this modification support could provide support for the Atom +Publishing Protocol. + +`Zend\Feed` consists of `Zend\Feed\Reader` for reading RSS and Atom feeds, +`Zend\Feed\Writer` for writing RSS and Atom feeds, and `Zend\Feed\PubSubHubbub` +for working with Hub servers. Furthermore, both `Zend\Feed\Reader` and +`Zend\Feed\Writer` support extensions which allows for working with additional +data in feeds, not covered in the core API but used in conjunction with RSS and +Atom feeds. + +In the example below, we demonstrate a simple use case of retrieving an RSS feed +and saving relevant portions of the feed data to a simple PHP array, which could +then be used for printing the data, storing to a database, etc. + +> ## RSS optional properties +> +> Many *RSS* feeds have different channel and item properties available. The +> *RSS* specification provides for many optional properties, so be aware of this +> when writing code to work with *RSS* data. `Zend\Feed` supports all optional +> properties of the core *RSS* and *Atom* specifications. + +## Reading RSS Feed Data + +```php +// Fetch the latest Slashdot headlines +try { + $slashdotRss = + Zend\Feed\Reader\Reader::import('http://rss.slashdot.org/Slashdot/slashdot'); +} catch (Zend\Feed\Reader\Exception\RuntimeException $e) { + // feed import failed + echo "Exception caught importing feed: {$e->getMessage()}\n"; + exit; +} + +// Initialize the channel/feed data array +$channel = [ + 'title' => $slashdotRss->getTitle(), + 'link' => $slashdotRss->getLink(), + 'description' => $slashdotRss->getDescription(), + 'items' => [], +]; + +// Loop over each channel item/entry and store relevant data for each +foreach ($slashdotRss as $item) { + $channel['items'][] = [ + 'title' => $item->getTitle(), + 'link' => $item->getLink(), + 'description' => $item->getDescription(), + ]; +} +``` + +Your `$channel` array now contains the basic meta-information for the RSS +channel and all items that it contained. The process is identical for Atom +feeds since `Zend\Feed` provides a common feed API; i.e. all getters and +setters are the same regardless of feed format.