Bläddra i källkod

[MANUAL] English:

- some fixes

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21993 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 15 år sedan
förälder
incheckning
faae06e415
1 ändrade filer med 105 tillägg och 93 borttagningar
  1. 105 93
      documentation/manual/en/module_specs/Zend_Feed_Pubsubhubbub.xml

+ 105 - 93
documentation/manual/en/module_specs/Zend_Feed_Pubsubhubbub.xml

@@ -14,11 +14,12 @@
 
 
         <para>
         <para>
             Pubsubhubbub is an open, simple web-scale pubsub protocol. A common use case to enable
             Pubsubhubbub is an open, simple web-scale pubsub protocol. A common use case to enable
-            blogs (Publishers) to "push" updates from their RSS or Atom feeds (Topics) to end
-            Subscribers. These Subscribers will have subscribed to the blog's RSS or Atom feed via a
-            Hub, a central server which is notified of any updates by the Publisher and which then
-            distributes these updates to all Subscribers. Any feed may advertise that it supports
-            one or more Hubs using an Atom namespaced link element with a rel attribute of "hub".
+            blogs (Publishers) to "push" updates from their <acronym>RSS</acronym> or Atom feeds
+            (Topics) to end Subscribers. These Subscribers will have subscribed to the blog's
+            <acronym>RSS</acronym> or Atom feed via a Hub, a central server which is notified of any
+            updates by the Publisher and which then distributes these updates to all Subscribers.
+            Any feed may advertise that it supports one or more Hubs using an Atom namespaced link
+            element with a rel attribute of "hub".
         </para>
         </para>
 
 
         <para>
         <para>
@@ -34,12 +35,12 @@
 
 
         <para>
         <para>
             The protocol does not exist in isolation. Pubsub systems have been around for a while,
             The protocol does not exist in isolation. Pubsub systems have been around for a while,
-            such as the familiar Jabber Publish-Subscribe protocol, XEP-0060, or the less well known
-            rssCloud (described in 2001). However these have not achieved widespread adoption
-            typically due to either their complexity, poor timing or lack of suitability for web
-            applications. rssCloud, which was recently revived as a response to the appearance of
-            Pubsubhubbub, has also seen its usage increase significantly though it lacks a formal
-            specification and currently does not support Atom 1.0 feeds.
+            such as the familiar Jabber Publish-Subscribe protocol, <acronym>XEP-0060</acronym>, or
+            the less well known rssCloud (described in 2001). However these have not achieved
+            widespread adoption typically due to either their complexity, poor timing or lack of
+            suitability for web applications. rssCloud, which was recently revived as a response to
+            the appearance of Pubsubhubbub, has also seen its usage increase significantly though it
+            lacks a formal specification and currently does not support Atom 1.0 feeds.
         </para>
         </para>
 
 
         <para>
         <para>
@@ -60,12 +61,12 @@
 
 
         <para>
         <para>
             A Publisher is responsible for notifying all supported Hubs (many can be supported to
             A Publisher is responsible for notifying all supported Hubs (many can be supported to
-            add redundancy to the system) of any updates to its feeds, whether they be Atom or RSS
-            based. This is achieved by pinging the supported Hub Servers with the URL of the updated
-            feed. In Pubsubhubbub terminology, any updatable resource capable of being subscribed
-            to is referred to as a Topic. Once a ping is received, the Hub will request the updated
-            feed, process it for updated items, and forward all updates to all Subscribers
-            subscribed to that feed.
+            add redundancy to the system) of any updates to its feeds, whether they be Atom or
+            <acronym>RSS</acronym> based. This is achieved by pinging the supported Hub Servers with
+            the <acronym>URL</acronym> of the updated feed. In Pubsubhubbub terminology, any
+            updatable resource capable of being subscribed to is referred to as a Topic. Once a ping
+            is received, the Hub will request the updated feed, process it for updated items, and
+            forward all updates to all Subscribers subscribed to that feed.
         </para>
         </para>
 
 
         <para>
         <para>
@@ -73,7 +74,7 @@
             updates from a Topic hosted by a Publisher. The Subscriber never directly communicates
             updates from a Topic hosted by a Publisher. The Subscriber never directly communicates
             with the Publisher since the Hub acts as an intermediary, accepting subscriptions and
             with the Publisher since the Hub acts as an intermediary, accepting subscriptions and
             sending updates to subscribed Subscribers. The Subscriber therefore communicates only
             sending updates to subscribed Subscribers. The Subscriber therefore communicates only
-            with the Hub, either to subscribe/unsubscribe to Topics, or when it receives updates
+            with the Hub, either to subscribe or unsubscribe to Topics, or when it receives updates
             from the Hub. This communication design ("Fat Pings") effectively removes the
             from the Hub. This communication design ("Fat Pings") effectively removes the
             possibility of a "Thundering Herd" issue. This occurs in a pubsub system where the Hub
             possibility of a "Thundering Herd" issue. This occurs in a pubsub system where the Hub
             merely informs Subscribers that an update is available, prompting all Subscribers to
             merely informs Subscribers that an update is available, prompting all Subscribers to
@@ -101,10 +102,11 @@
             updates it with new content. This may be a blog, an aggregator, or even a web service
             updates it with new content. This may be a blog, an aggregator, or even a web service
             with a public feed based <acronym>API</acronym>. In order for these updates to be pushed
             with a public feed based <acronym>API</acronym>. In order for these updates to be pushed
             to Subscribers, the Publisher must notify all of its supported Hubs that an update has
             to Subscribers, the Publisher must notify all of its supported Hubs that an update has
-            occured using a simple <acronym>HTTP</acronym> POST request containing the URI or the
-            updated Topic (i.e the updated RSS or Atom feed). The Hub will confirm receipt of the
-            notification, fetch the updated feed, and forward any updates to any Subscribers who
-            have subscribed to that Hub for updates from the relevant feed.
+            occured using a simple <acronym>HTTP</acronym> POST request containing the
+            <acronym>URI</acronym> or the updated Topic (i.e the updated <acronym>RSS</acronym> or
+            Atom feed). The Hub will confirm receipt of the notification, fetch the updated feed,
+            and forward any updates to any Subscribers who have subscribed to that Hub for updates
+            from the relevant feed.
         </para>
         </para>
 
 
         <para>
         <para>
@@ -116,19 +118,20 @@
         <para>
         <para>
             <classname>Zend_Feed_Pubsubhubbub_Publisher</classname> implements a full Pubsubhubbub
             <classname>Zend_Feed_Pubsubhubbub_Publisher</classname> implements a full Pubsubhubbub
             Publisher. Its setup for use is also simple, requiring mainly that it is configured with
             Publisher. Its setup for use is also simple, requiring mainly that it is configured with
-            the URI endpoint for all Hubs to be notified of updates, and the URIs of all Topics to
-            be included in the notifications.
+            the <acronym>URI</acronym> endpoint for all Hubs to be notified of updates, and the
+            <acronym>URI</acronym>s of all Topics to be included in the notifications.
         </para>
         </para>
 
 
         <para>
         <para>
             The following example shows a Publisher notifying a collection of Hubs about updates to
             The following example shows a Publisher notifying a collection of Hubs about updates to
-            a pair of local RSS and Atom feeds. The class retains a collection of errors which
-            include the Hub URLs, so the notification can be re-attempted later and/or logged if any
-            notifications happen to fail. Each resulting error array also includes a "response" key
-            containing the related <acronym>HTTP</acronym> response object. In the event of any
-            errors, it is strongly recommended to attempt the operation for failed Hub Endpoints at
-            least once more at a future time. This may require the use of either a scheduled task
-            for this purpose or a job queue though such extra steps are optional.
+            a pair of local <acronym>RSS</acronym> and Atom feeds. The class retains a collection of
+            errors which include the Hub <acronym>URL</acronym>s, so the notification can be
+            re-attempted later and/or logged if any notifications happen to fail. Each resulting
+            error array also includes a "response" key containing the related
+            <acronym>HTTP</acronym> response object. In the event of any errors, it is strongly
+            recommended to attempt the operation for failed Hub Endpoints at least once more at a
+            future time. This may require the use of either a scheduled task for this purpose or a
+            job queue though such extra steps are optional.
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
@@ -165,9 +168,9 @@ if (!$publisher->isSuccess()) {
         </para>
         </para>
 
 
         <para>
         <para>
-            You can also skip setting Hub URIs, and notify each in turn using the
-            <methodname>notifyHub()</methodname> method which accepts the URI of a Hub endpoint as
-            its only argument.
+            You can also skip setting Hub <acronym>URI</acronym>s, and notify each in turn using the
+            <methodname>notifyHub()</methodname> method which accepts the <acronym>URI</acronym> of
+            a Hub endpoint as its only argument.
         </para>
         </para>
 
 
         <para>
         <para>
@@ -177,7 +180,7 @@ if (!$publisher->isSuccess()) {
             (with a reasonable maximum number of retries) to ensure notifications reach all
             (with a reasonable maximum number of retries) to ensure notifications reach all
             Subscribers. In many cases as a final alternative, Hubs may frequently poll your
             Subscribers. In many cases as a final alternative, Hubs may frequently poll your
             feeds to offer some additional tolerance for failures both in terms of their own
             feeds to offer some additional tolerance for failures both in terms of their own
-            temporary downtime or Publisher errors/downtime.
+            temporary downtime or Publisher errors or downtime.
         </para>
         </para>
     </sect2>
     </sect2>
 
 
@@ -186,14 +189,15 @@ if (!$publisher->isSuccess()) {
 
 
         <para>
         <para>
             In Pubsubhubbub, the Subscriber is the party who wishes to receive updates to any Topic
             In Pubsubhubbub, the Subscriber is the party who wishes to receive updates to any Topic
-            (RSS or Atom feed). They achieve this by subscribing to one or more of the Hubs
-            advertised by that Topic, usually as a set of one or more Atom 1.0 links with a rel
-            attribute of "hub". The Hub from that point forward will send an Atom or RSS feed
-            containing all updates to that Subscriber's Callback URL when it receives an update
-            notification from the Publisher. In this way, the Subscriber need never actually visit
-            the original feed (though it's still recommended at some level to ensure updates are
-            retrieved if ever a Hub goes offline). All subscription requests must contain the URI of
-            the Topic being subscribed and a Callback URL which the Hub will use to confirm the
+            (<acronym>RSS</acronym> or Atom feed). They achieve this by subscribing to one or more
+            of the Hubs advertised by that Topic, usually as a set of one or more Atom 1.0 links
+            with a rel attribute of "hub". The Hub from that point forward will send an Atom or
+            <acronym>RSS</acronym> feed containing all updates to that Subscriber's Callback
+            <acronym>URL</acronym> when it receives an update notification from the Publisher. In
+            this way, the Subscriber need never actually visit the original feed (though it's still
+            recommended at some level to ensure updates are retrieved if ever a Hub goes offline).
+            All subscription requests must contain the <acronym>URI</acronym> of the Topic being
+            subscribed and a Callback <acronym>URL</acronym> which the Hub will use to confirm the
             subscription and to forward updates.
             subscription and to forward updates.
         </para>
         </para>
 
 
@@ -205,24 +209,25 @@ if (!$publisher->isSuccess()) {
         </para>
         </para>
 
 
         <para>
         <para>
-            The second role is to accept updates sent by a Hub to the Subscriber's Callback URL,
-            i.e. the URI the Subscriber has assigned to handle updates. The Callback URL also
-            handles events where the Hub contacts the Subscriber to confirm all subscriptions and
-            unsubscriptions. This is handled by using an instance of
-            <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> when the Callback URL
-            is accessed.
+            The second role is to accept updates sent by a Hub to the Subscriber's Callback
+            <acronym>URL</acronym>, i.e. the <acronym>URI</acronym> the Subscriber has assigned to
+            handle updates. The Callback <acronym>URL</acronym> also handles events where the Hub
+            contacts the Subscriber to confirm all subscriptions and unsubscriptions. This is
+            handled by using an instance of
+            <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> when the Callback
+            <acronym>URL</acronym> is accessed.
         </para>
         </para>
 
 
         <important>
         <important>
             <para>
             <para>
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber</classname> implements the Pubsubhubbub
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber</classname> implements the Pubsubhubbub
                 0.2 Specification. As this is a new specification version not all Hubs currently
                 0.2 Specification. As this is a new specification version not all Hubs currently
-                implement it. The new specification allows the Callback URL to include a query
-                string which is used by this class, but not supported by all Hubs. In the interests
-                of maximising compatibility it is therefore recommended that the query string
-                component of the Subscriber Callback URI be presented as a path element, i.e.
-                recognised as a parameter in the route associated with the Callback URI and used by
-                the application's Router.
+                implement it. The new specification allows the Callback <acronym>URL</acronym> to
+                include a query string which is used by this class, but not supported by all Hubs.
+                In the interests of maximising compatibility it is therefore recommended that the
+                query string component of the Subscriber Callback <acronym>URI</acronym> be
+                presented as a path element, i.e. recognised as a parameter in the route associated
+                with the Callback <acronym>URI</acronym> and used by the application's Router.
             </para>
             </para>
         </important>
         </important>
 
 
@@ -241,11 +246,12 @@ if (!$publisher->isSuccess()) {
 
 
             <para>
             <para>
                 Any subscription (or unsubscription) requires the relevant information before
                 Any subscription (or unsubscription) requires the relevant information before
-                proceeding, i.e. the URI of the Topic (Atom or RSS feed) to be subscribed to for
-                updates, and the URI of the endpoint for the Hub which will handle the subscription
-                and forwarding of the updates. The lifetime of a subscription may be determined by
-                the Hub but most Hubs should support automatic subscription refreshes by checking
-                with the Subscriber. This is supported by
+                proceeding, i.e. the <acronym>URI</acronym> of the Topic (Atom or
+                <acronym>RSS</acronym> feed) to be subscribed to for updates, and the
+                <acronym>URI</acronym> of the endpoint for the Hub which will handle the
+                subscription and forwarding of the updates. The lifetime of a subscription may
+                be determined by the Hub but most Hubs should support automatic subscription
+                refreshes by checking with the Subscriber. This is supported by
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> and requires no
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> and requires no
                 other work on your part. It is still strongly recommended that you use the Hub
                 other work on your part. It is still strongly recommended that you use the Hub
                 sourced subscription time to live (ttl) to schedule the creation of new
                 sourced subscription time to live (ttl) to schedule the creation of new
@@ -336,17 +342,18 @@ CREATE TABLE IF NOT EXISTS `subscription` (
 
 
                             <entry>
                             <entry>
                                 <para>
                                 <para>
-                                    The URI used by a Hub to contact the Subscriber and either
-                                    request confirmation of a (un)subscription request or send
-                                    updates from subscribed feeds. The appended query string
-                                    contains a custom parameter (hence the xhub designation). It is
-                                    a query string parameter preserved by the Hub and resent with
-                                    all Subscriber requests. Its purpose is to allow the Subscriber
-                                    to identify and look up the subscription associated with any Hub
-                                    request in a backend storage medium. This is a non-standard
-                                    parameter used by this component in preference to encoding a
-                                    subscription key in the URI path which is more difficult to
-                                    implement in a Zend Framework application.
+                                    The <acronym>URI</acronym> used by a Hub to contact the
+                                    Subscriber and either request confirmation of a (un)subscription
+                                    request or send updates from subscribed feeds. The appended
+                                    query string contains a custom parameter (hence the xhub
+                                    designation). It is a query string parameter preserved by the
+                                    Hub and resent with all Subscriber requests. Its purpose is to
+                                    allow the Subscriber to identify and look up the subscription
+                                    associated with any Hub request in a backend storage medium.
+                                    This is a non-standard parameter used by this component in
+                                    preference to encoding a subscription key in the
+                                    <acronym>URI</acronym> path which is more difficult to implement
+                                    in a Zend Framework application.
                                 </para>
                                 </para>
 
 
                                 <para>
                                 <para>
@@ -371,13 +378,14 @@ CREATE TABLE IF NOT EXISTS `subscription` (
                             <entry>
                             <entry>
                                 <para>
                                 <para>
                                     The number of seconds for which the Subscriber would like a new
                                     The number of seconds for which the Subscriber would like a new
-                                    subscription to remain valid for (i.e. a TTL). Hubs may enforce
-                                    their own maximum subscription period. All subscriptions should
-                                    be renewed by simply re-subscribing before the subscription
-                                    period ends to ensure continuity of updates. Hubs should
-                                    additionally attempt to automatically refresh subscriptions
-                                    before they expire by contacting Subscribers (handled
-                                    automatically by the Callback class).
+                                    subscription to remain valid for (i.e. a
+                                    <acronym>TTL</acronym>). Hubs may enforce their own maximum
+                                    subscription period. All subscriptions should be renewed by
+                                    simply re-subscribing before the subscription period ends to
+                                    ensure continuity of updates. Hubs should additionally attempt
+                                    to automatically refresh subscriptions before they expire by
+                                    contacting Subscribers (handled automatically by the Callback
+                                    class).
                                 </para>
                                 </para>
                             </entry>
                             </entry>
                         </row>
                         </row>
@@ -400,8 +408,9 @@ CREATE TABLE IF NOT EXISTS `subscription` (
 
 
                             <entry>
                             <entry>
                                 <para>
                                 <para>
-                                    The URI of the topic (i.e. Atom or RSS feed) which the
-                                    Subscriber wishes to subscribe to for updates.
+                                    The <acronym>URI</acronym> of the topic (i.e. Atom or
+                                    <acronym>RSS</acronym> feed) which the Subscriber wishes to
+                                    subscribe to for updates.
                                 </para>
                                 </para>
                             </entry>
                             </entry>
                         </row>
                         </row>
@@ -505,10 +514,11 @@ CREATE TABLE IF NOT EXISTS `subscription` (
 
 
             <para>
             <para>
                 Whenever a subscription or unsubscription request is made, the Hub must verify the
                 Whenever a subscription or unsubscription request is made, the Hub must verify the
-                request by forwarding a new verification request to the Callback URL set in the
-                subscription/unsubscription parameters. To handle these Hub requests, which will
-                include all future communications containing Topic (feed) updates, the Callback URL
-                should trigger the execution of an instance of
+                request by forwarding a new verification request to the Callback
+                <acronym>URL</acronym> set in the subscription or unsubscription parameters. To
+                handle these Hub requests, which will include all future communications containing
+                Topic (feed) updates, the Callback <acronym>URL</acronym> should trigger the
+                execution of an instance of
                 <classname>Zend_Pubsubhubbub_Subscriber_Callback</classname> to handle the request.
                 <classname>Zend_Pubsubhubbub_Subscriber_Callback</classname> to handle the request.
             </para>
             </para>
 
 
@@ -560,7 +570,7 @@ if ($callback->hasFeedUpdate()) {
                     the Hub waiting for a response. Rather, any processing should be offloaded to
                     the Hub waiting for a response. Rather, any processing should be offloaded to
                     another process or deferred until after a response has been returned to the Hub.
                     another process or deferred until after a response has been returned to the Hub.
                     One symptom of a failure to promptly complete Hub requests is that a Hub may
                     One symptom of a failure to promptly complete Hub requests is that a Hub may
-                    continue to attempt delivery of the update/verification request leading to
+                    continue to attempt delivery of the update or verification request leading to
                     duplicated update attempts being processed by the Subscriber. This appears
                     duplicated update attempts being processed by the Subscriber. This appears
                     problematic - but in reality a Hub may apply a timeout of just a few seconds,
                     problematic - but in reality a Hub may apply a timeout of just a few seconds,
                     and if no response is received within that time it may disconnect (assuming a
                     and if no response is received within that time it may disconnect (assuming a
@@ -580,16 +590,18 @@ if ($callback->hasFeedUpdate()) {
                 As noted earlier, the
                 As noted earlier, the
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> class receives the
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> class receives the
                 combined key associated with any subscription from the Hub via one of two methods.
                 combined key associated with any subscription from the Hub via one of two methods.
-                The technically preferred method is to add this key to the Callback URL employed by
-                the Hub in all future requests using a query string parameter with the key
-                "xhub.subscription". However, for historical reasons, primarily that this was not
-                supported in Pubsubhubbub 0.1 (it was recently added in 0.2 only), it is strongly
-                recommended to use the most compatible means of adding this key to the Callback URL
-                by appending it to the URL's path.
+                The technically preferred method is to add this key to the Callback
+                <acronym>URL</acronym> employed by the Hub in all future requests using a query
+                string parameter with the key "xhub.subscription". However, for historical reasons,
+                primarily that this was not supported in Pubsubhubbub 0.1 (it was recently added in
+                0.2 only), it is strongly recommended to use the most compatible means of adding
+                this key to the Callback <acronym>URL</acronym> by appending it to the
+                <acronym>URL</acronym>'s path.
             </para>
             </para>
 
 
             <para>
             <para>
-                Thus the URL http://www.example.com/callback?xhub.subscription=key would become
+                Thus the <acronym>URL</acronym>
+                http://www.example.com/callback?xhub.subscription=key would become
                 http://www.example.com/callback/key.
                 http://www.example.com/callback/key.
             </para>
             </para>
 
 
@@ -600,7 +612,7 @@ if ($callback->hasFeedUpdate()) {
             </para>
             </para>
 
 
             <para>
             <para>
-                The first step to to make the
+                The first step to make the
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> class aware of the
                 <classname>Zend_Feed_Pubsubhubbub_Subscriber_Callback</classname> class aware of the
                 path contained subscription key. It's manually injected therefore since it also
                 path contained subscription key. It's manually injected therefore since it also
                 requires manually defining a route for this purpose. This is achieved simply by
                 requires manually defining a route for this purpose. This is achieved simply by