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.