[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / en / module_specs / Zend_Service_Technorati.xml
blobd75cd7db51b0a81c0a866134a94de85303ccb8d4
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect1 id="zend.service.technorati">
4     <title>Zend_Service_Technorati</title>
6     <sect2 id="zend.service.technorati.introduction">
7         <title>Introduction</title>
9         <para>
10             <classname>Zend_Service_Technorati</classname> provides an easy, intuitive and
11             object-oriented interface for using the Technorati <acronym>API</acronym>. It provides
12             access to all available <ulink url="http://technorati.com/developers/api/">Technorati
13             <acronym>API</acronym> queries</ulink> and returns the original <acronym>XML</acronym>
14             response as a friendly <acronym>PHP</acronym> object.
15         </para>
17         <para>
18             <ulink url="http://technorati.com/">Technorati</ulink> is one of the most popular blog
19             search engines. The <acronym>API</acronym> interface enables developers to retrieve
20             information about a specific blog, search blogs matching a single tag or phrase and get
21             information about a specific author (blogger). For a full list of available queries
22             please see the <ulink url="http://technorati.com/developers/api/">Technorati
23                 <acronym>API</acronym> documentation</ulink> or the <link
24                 linkend="zend.service.technorati.queries">Available Technorati queries</link>
25             section of this document.
26         </para>
27     </sect2>
29     <sect2 id="zend.service.technorati.getting-started">
30         <title>Getting Started</title>
32         <para>
33             Technorati requires a valid <acronym>API</acronym> key for usage. To get your own
34             <acronym>API</acronym> Key you first need to <ulink
35                 url="http://technorati.com/signup/">create a new Technorati account</ulink>, then
36             visit the <ulink url="http://technorati.com/developers/apikey.html">API Key
37                 section</ulink>.
38         </para>
40         <note>
41             <title>API Key limits</title>
43             <para>
44                 You can make up to 500 Technorati <acronym>API</acronym> calls per day, at no
45                 charge. Other usage limitations may apply, depending on the current Technorati
46                 <acronym>API</acronym> license.
47             </para>
48         </note>
50         <para>
51             Once you have a valid <acronym>API</acronym> key, you're ready to start using
52             <classname>Zend_Service_Technorati</classname>.
53         </para>
54     </sect2>
56     <sect2 id="zend.service.technorati.making-first-query">
57         <title>Making Your First Query</title>
59         <para>
60             In order to run a query, first you need a <classname>Zend_Service_Technorati</classname>
61             instance with a valid <acronym>API</acronym> key. Then choose one of the available query
62             methods, and call it providing required arguments.
63         </para>
65         <example id="zend.service.technorati.making-first-query.example-1">
66             <title>Sending your first query</title>
68             <programlisting language="php"><![CDATA[
69 // create a new Zend_Service_Technorati
70 // with a valid API_KEY
71 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
73 // search Technorati for PHP keyword
74 $resultSet = $technorati->search('PHP');
75 ]]></programlisting>
76         </example>
78         <para>
79             Each query method accepts an array of optional parameters that can be used to refine
80             your query.
81         </para>
83         <example id="zend.service.technorati.making-first-query.example-2">
84             <title>Refining your query</title>
86             <programlisting language="php"><![CDATA[
87 // create a new Zend_Service_Technorati
88 // with a valid API_KEY
89 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
91 // filter your query including only results
92 // with some authority (Results from blogs with a handful of links)
93 $options = array('authority' => 'a4');
95 // search Technorati for PHP keyword
96 $resultSet = $technorati->search('PHP', $options);
97 ]]></programlisting>
98         </example>
100         <para>
101             A <classname>Zend_Service_Technorati</classname> instance is not a single-use object.
102             That is, you don't need to create a new instance for each query call; simply use your
103             current <classname>Zend_Service_Technorati</classname> object as long as you need it.
104         </para>
106         <example id="zend.service.technorati.making-first-query.example-3">
107             <title>Sending multiple queries with the same Zend_Service_Technorati instance</title>
109             <programlisting language="php"><![CDATA[
110 // create a new Zend_Service_Technorati
111 // with a valid API_KEY
112 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
114 // search Technorati for PHP keyword
115 $search = $technorati->search('PHP');
117 // get top tags indexed by Technorati
118 $topTags = $technorati->topTags();
119 ]]></programlisting>
120         </example>
121     </sect2>
123     <sect2 id="zend.service.technorati.consuming-results">
124         <title>Consuming Results</title>
126         <para>
127             You can get one of two types of result object in response to a query.
128         </para>
130         <para>
131             The first group is represented by
132             <classname>Zend_Service_Technorati_*ResultSet</classname> objects. A result set object
133             is basically a collection of result objects. It extends the basic
134             <classname>Zend_Service_Technorati_ResultSet</classname> class and implements the
135             <code>SeekableIterator</code> <acronym>PHP</acronym> interface. The best way to consume
136             a result set object is to loop over it with the <acronym>PHP</acronym>
137             <code>foreach</code> statement.
138         </para>
140         <example id="zend.service.technorati.consuming-results.example-1">
141             <title>Consuming a result set object</title>
143             <programlisting language="php"><![CDATA[
144 // create a new Zend_Service_Technorati
145 // with a valid API_KEY
146 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
148 // search Technorati for PHP keyword
149 // $resultSet is an instance of Zend_Service_Technorati_SearchResultSet
150 $resultSet = $technorati->search('PHP');
152 // loop over all result objects
153 foreach ($resultSet as $result) {
154     // $result is an instance of Zend_Service_Technorati_SearchResult
156 ]]></programlisting>
157         </example>
159         <para>
160             Because <classname>Zend_Service_Technorati_ResultSet</classname> implements the
161             <code>SeekableIterator</code> interface, you can seek a specific result object using its
162             position in the result collection.
163         </para>
165         <example id="zend.service.technorati.consuming-results.example-2">
166             <title>Seeking a specific result set object</title>
168             <programlisting language="php"><![CDATA[
169 // create a new Zend_Service_Technorati
170 // with a valid API_KEY
171 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
173 // search Technorati for PHP keyword
174 // $resultSet is an instance of Zend_Service_Technorati_SearchResultSet
175 $resultSet = $technorati->search('PHP');
177 // $result is an instance of Zend_Service_Technorati_SearchResult
178 $resultSet->seek(1);
179 $result = $resultSet->current();
180 ]]></programlisting>
181         </example>
183         <note>
184             <para>
185                 <code>SeekableIterator</code> works as an array and counts positions starting from
186                 index 0. Fetching position number 1 means getting the second result in the
187                 collection.
188             </para>
189         </note>
191         <para>
192             The second group is represented by special standalone result objects.
193             <classname>Zend_Service_Technorati_GetInfoResult</classname>,
194             <classname>Zend_Service_Technorati_BlogInfoResult</classname> and
195             <classname>Zend_Service_Technorati_KeyInfoResult</classname> act as wrappers for
196             additional objects, such as <classname>Zend_Service_Technorati_Author</classname> and
197             <classname>Zend_Service_Technorati_Weblog</classname>.
198         </para>
200         <example id="zend.service.technorati.consuming-results.example-3">
201             <title>Consuming a standalone result object</title>
203             <programlisting language="php"><![CDATA[
204 // create a new Zend_Service_Technorati
205 // with a valid API_KEY
206 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
208 // get info about weppos author
209 $result = $technorati->getInfo('weppos');
211 $author = $result->getAuthor();
212 echo '<h2>Blogs authored by ' . $author->getFirstName() . " " .
213           $author->getLastName() . '</h2>';
214 echo '<ol>';
215 foreach ($result->getWeblogs() as $weblog) {
216     echo '<li>' . $weblog->getName() . '</li>';
218 echo "</ol>";
219 ]]></programlisting>
220         </example>
222         <para>
223             Please read the <link linkend="zend.service.technorati.classes">Zend_Service_Technorati
224                 Classes</link> section for further details about response classes.
225         </para>
226     </sect2>
228     <sect2 id="zend.service.technorati.handling-errors">
229         <title>Handling Errors</title>
231         <para>
232             Each <classname>Zend_Service_Technorati</classname> query method throws a
233             <classname>Zend_Service_Technorati_Exception</classname> exception on failure with a
234             meaningful error message.
235         </para>
237         <para>
238             There are several reasons that may cause a
239             <classname>Zend_Service_Technorati</classname> query to fail.
240             <classname>Zend_Service_Technorati</classname> validates all parameters for any query
241             request. If a parameter is invalid or it contains an invalid value, a new
242             <classname>Zend_Service_Technorati_Exception</classname> exception is thrown.
243             Additionally, the Technorati <acronym>API</acronym> interface could be temporally
244             unavailable, or it could return a response that is not well formed.
245         </para>
247         <para>
248             You should always wrap a Technorati query with a <code>try</code>...<code>catch</code>
249             block.
250         </para>
252         <example id="zend.service.technorati.handling-errors.example-1">
253             <title>Handling a Query Exception</title>
255             <programlisting language="php"><![CDATA[
256 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
257 try {
258     $resultSet = $technorati->search('PHP');
259 } catch(Zend_Service_Technorati_Exception $e) {
260     echo "An error occurred: " $e->getMessage();
262 ]]></programlisting>
263         </example>
264     </sect2>
266     <sect2 id="zend.service.technorati.checking-api-daily-usage">
267         <title>Checking Your API Key Daily Usage</title>
269         <para>
270             From time to time you probably will want to check your <acronym>API</acronym> key daily
271             usage. By default Technorati limits your <acronym>API</acronym> usage to 500 calls per
272             day, and an exception is returned by <classname>Zend_Service_Technorati</classname> if
273             you try to use it beyond this limit. You can get information about your
274             <acronym>API</acronym> key usage using the
275             <methodname>Zend_Service_Technorati::keyInfo()</methodname> method.
276         </para>
278         <para>
279             <methodname>Zend_Service_Technorati::keyInfo()</methodname> returns a
280             <classname>Zend_Service_Technorati_KeyInfoResult</classname> object. For full details
281             please see the <ulink url="http://framework.zend.com/apidoc/core/">API reference
282                 guide</ulink>.
283         </para>
285         <example id="zend.service.technorati.checking-api-daily-usage.example-1">
286             <title>Getting API key daily usage information</title>
288             <programlisting language="php"><![CDATA[
289 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
290 $key = $technorati->keyInfo();
292 echo "API Key: " . $key->getApiKey() . "<br />";
293 echo "Daily Usage: " . $key->getApiQueries() . "/" .
294      $key->getMaxQueries() . "<br />";
295 ]]></programlisting>
296         </example>
297     </sect2>
299     <sect2 id="zend.service.technorati.queries">
300         <title>Available Technorati Queries</title>
302         <para>
303             <classname>Zend_Service_Technorati</classname> provides support for the following
304             queries:
306             <itemizedlist>
307                 <listitem>
308                     <para>
309                         <link
310                             linkend="zend.service.technorati.queries.cosmos"><code>Cosmos</code></link>
311                     </para>
312                 </listitem>
314                 <listitem>
315                     <para>
316                         <link
317                             linkend="zend.service.technorati.queries.search"><code>Search</code></link>
318                     </para>
319                 </listitem>
321                 <listitem>
322                     <para>
323                         <link linkend="zend.service.technorati.queries.tag"><code>Tag</code></link>
324                     </para>
325                 </listitem>
327                 <listitem>
328                     <para>
329                         <link
330                             linkend="zend.service.technorati.queries.dailycounts"><code>DailyCounts</code></link>
331                     </para>
332                 </listitem>
334                 <listitem>
335                     <para>
336                         <link
337                             linkend="zend.service.technorati.queries.toptags"><code>TopTags</code></link>
338                     </para>
339                 </listitem>
341                 <listitem>
342                     <para>
343                         <link
344                             linkend="zend.service.technorati.queries.bloginfo"><code>BlogInfo</code></link>
345                     </para>
346                 </listitem>
348                 <listitem>
349                     <para>
350                         <link
351                             linkend="zend.service.technorati.queries.blogposttags"><code>BlogPostTags</code></link>
352                     </para>
353                 </listitem>
355                 <listitem>
356                     <para>
357                         <link
358                             linkend="zend.service.technorati.queries.getinfo"><code>GetInfo</code></link>
359                     </para>
360                 </listitem>
361             </itemizedlist>
362         </para>
364         <sect3 id="zend.service.technorati.queries.cosmos">
365             <title>Technorati Cosmos</title>
367             <para>
368                 <ulink url="http://technorati.com/developers/api/cosmos.html">Cosmos</ulink> query
369                 lets you see what blogs are linking to a given <acronym>URL</acronym>. It returns a
370                 <link
371                     linkend="zend.service.technorati.classes.cosmosresultset"><classname>Zend_Service_Technorati_CosmosResultSet</classname></link>
372                 object. For full details please see
373                 <methodname>Zend_Service_Technorati::cosmos()</methodname> in the
374                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
375             </para>
377             <example id="zend.service.technorati.queries.cosmos.example-1">
378                 <title>Cosmos Query</title>
380                 <programlisting language="php"><![CDATA[
381 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
382 $resultSet = $technorati->cosmos('http://devzone.zend.com/');
384 echo "<p>Reading " . $resultSet->totalResults() .
385      " of " . $resultSet->totalResultsAvailable() .
386      " available results</p>";
387 echo "<ol>";
388 foreach ($resultSet as $result) {
389     echo "<li>" . $result->getWeblog()->getName() . "</li>";
391 echo "</ol>";
392 ]]></programlisting>
393             </example>
394         </sect3>
396         <sect3 id="zend.service.technorati.queries.search">
397             <title>Technorati Search</title>
399             <para>
400                 The <ulink url="http://technorati.com/developers/api/search.html">Search</ulink>
401                 query lets you see what blogs contain a given search string. It returns a <link
402                     linkend="zend.service.technorati.classes.searchresultset"><classname>Zend_Service_Technorati_SearchResultSet</classname></link>
403                 object. For full details please see
404                 <methodname>Zend_Service_Technorati::search()</methodname> in the
405                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
406             </para>
408             <example id="zend.service.technorati.queries.search.example-1">
409                 <title>Search Query</title>
411                 <programlisting language="php"><![CDATA[
412 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
413 $resultSet = $technorati->search('zend framework');
415 echo "<p>Reading " . $resultSet->totalResults() .
416      " of " . $resultSet->totalResultsAvailable() .
417      " available results</p>";
418 echo "<ol>";
419 foreach ($resultSet as $result) {
420     echo "<li>" . $result->getWeblog()->getName() . "</li>";
422 echo "</ol>";
423 ]]></programlisting>
424             </example>
425         </sect3>
427         <sect3 id="zend.service.technorati.queries.tag">
428             <title>Technorati Tag</title>
430             <para>
431                 The <ulink url="http://technorati.com/developers/api/tag.html">Tag</ulink> query
432                 lets you see what posts are associated with a given tag. It returns a <link
433                     linkend="zend.service.technorati.classes.tagresultset"><classname>Zend_Service_Technorati_TagResultSet</classname></link>
434                 object. For full details please see
435                 <methodname>Zend_Service_Technorati::tag()</methodname> in the
436                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
437             </para>
439             <example id="zend.service.technorati.queries.tag.example-1">
440                 <title>Tag Query</title>
442                 <programlisting language="php"><![CDATA[
443 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
444 $resultSet = $technorati->tag('php');
446 echo "<p>Reading " . $resultSet->totalResults() .
447      " of " . $resultSet->totalResultsAvailable() .
448      " available results</p>";
449 echo "<ol>";
450 foreach ($resultSet as $result) {
451     echo "<li>" . $result->getWeblog()->getName() . "</li>";
453 echo "</ol>";
454 ]]></programlisting>
455             </example>
456         </sect3>
458         <sect3 id="zend.service.technorati.queries.dailycounts">
459             <title>Technorati DailyCounts</title>
461             <para>
462                 The <ulink
463                     url="http://technorati.com/developers/api/dailycounts.html">DailyCounts</ulink>
464                 query provides daily counts of posts containing the queried keyword. It returns a
465                 <link
466                     linkend="zend.service.technorati.classes.dailycountsresultset"><classname>Zend_Service_Technorati_DailyCountsResultSet</classname></link>
467                 object. For full details please see
468                 <methodname>Zend_Service_Technorati::dailyCounts()</methodname> in the
469                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
470             </para>
472             <example id="zend.service.technorati.queries.dailycounts.example-1">
473                 <title>DailyCounts Query</title>
475                 <programlisting language="php"><![CDATA[
476 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
477 $resultSet = $technorati->dailyCounts('php');
479 foreach ($resultSet as $result) {
480     echo "<li>" . $result->getDate() .
481          "(" . $result->getCount() . ")</li>";
483 echo "</ol>";
484 ]]></programlisting>
485             </example>
486         </sect3>
488         <sect3 id="zend.service.technorati.queries.toptags">
489             <title>Technorati TopTags</title>
491             <para>
492                 The <ulink url="http://technorati.com/developers/api/toptags.html">TopTags</ulink>
493                 query provides information on top tags indexed by Technorati. It returns a <link
494                     linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link>
495                 object. For full details please see
496                 <methodname>Zend_Service_Technorati::topTags()</methodname> in the
497                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
498             </para>
500             <example id="zend.service.technorati.queries.toptags.example-1">
501                 <title>TopTags Query</title>
503                 <programlisting language="php"><![CDATA[
504 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
505 $resultSet = $technorati->topTags();
507 echo "<p>Reading " . $resultSet->totalResults() .
508      " of " . $resultSet->totalResultsAvailable() .
509      " available results</p>";
510 echo "<ol>";
511 foreach ($resultSet as $result) {
512     echo "<li>" . $result->getTag() . "</li>";
514 echo "</ol>";
515 ]]></programlisting>
516             </example>
517         </sect3>
519         <sect3 id="zend.service.technorati.queries.bloginfo">
520             <title>Technorati BlogInfo</title>
522             <para>
523                 The <ulink url="http://technorati.com/developers/api/bloginfo.html">BlogInfo</ulink>
524                 query provides information on what blog, if any, is associated with a given
525                 <acronym>URL</acronym>. It returns a <link
526                     linkend="zend.service.technorati.classes.bloginforesult"><classname>Zend_Service_Technorati_BlogInfoResult</classname></link>
527                 object. For full details please see
528                 <methodname>Zend_Service_Technorati::blogInfo()</methodname> in the
529                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
530             </para>
532             <example id="zend.service.technorati.queries.bloginfo.example-1">
533                 <title>BlogInfo Query</title>
535                 <programlisting language="php"><![CDATA[
536 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
537 $result = $technorati->blogInfo('http://devzone.zend.com/');
539 echo '<h2><a href="' . (string) $result->getWeblog()->getUrl() . '">' .
540      $result->getWeblog()->getName() . '</a></h2>';
541 ]]></programlisting>
542             </example>
543         </sect3>
545         <sect3 id="zend.service.technorati.queries.blogposttags">
546             <title>Technorati BlogPostTags</title>
548             <para>
549                 The <ulink
550                     url="http://technorati.com/developers/api/blogposttags.html">BlogPostTags</ulink>
551                 query provides information on the top tags used by a specific blog. It returns a
552                 <link
553                     linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link>
554                 object. For full details please see
555                 <methodname>Zend_Service_Technorati::blogPostTags()</methodname> in the
556                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
557             </para>
559             <example id="zend.service.technorati.queries.blogposttags.example-1">
560                 <title>BlogPostTags Query</title>
562                 <programlisting language="php"><![CDATA[
563 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
564 $resultSet = $technorati->blogPostTags('http://devzone.zend.com/');
566 echo "<p>Reading " . $resultSet->totalResults() .
567      " of " . $resultSet->totalResultsAvailable() .
568      " available results</p>";
569 echo "<ol>";
570 foreach ($resultSet as $result) {
571     echo "<li>" . $result->getTag() . "</li>";
573 echo "</ol>";
574 ]]></programlisting>
575             </example>
576         </sect3>
578         <sect3 id="zend.service.technorati.queries.getinfo">
579             <title>Technorati GetInfo</title>
581             <para>
582                 The <ulink url="http://technorati.com/developers/api/getinfo.html">GetInfo</ulink>
583                 query tells you things that Technorati knows about a member. It returns a <link
584                     linkend="zend.service.technorati.classes.getinforesult"><classname>Zend_Service_Technorati_GetInfoResult</classname></link>
585                 object. For full details please see
586                 <methodname>Zend_Service_Technorati::getInfo()</methodname> in the
587                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
588             </para>
590             <example id="zend.service.technorati.queries.getinfo.example-1">
591                 <title>GetInfo Query</title>
593                 <programlisting language="php"><![CDATA[
594 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
595 $result = $technorati->getInfo('weppos');
597 $author = $result->getAuthor();
598 echo "<h2>Blogs authored by " . $author->getFirstName() . " " .
599      $author->getLastName() . "</h2>";
600 echo "<ol>";
601 foreach ($result->getWeblogs() as $weblog) {
602     echo "<li>" . $weblog->getName() . "</li>";
604 echo "</ol>";
605 ]]></programlisting>
606             </example>
607         </sect3>
609         <sect3 id="zend.service.technorati.queries.keyinfo">
610             <title>Technorati KeyInfo</title>
612             <para>
613                 The KeyInfo query provides information on daily usage of an <acronym>API</acronym>
614                 key. It returns a <link
615                     linkend="zend.service.technorati.classes.keyinforesult"><classname>Zend_Service_Technorati_KeyInfoResult</classname></link>
616                 object. For full details please see
617                 <methodname>Zend_Service_Technorati::keyInfo()</methodname> in the
618                 <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
619             </para>
620         </sect3>
621     </sect2>
623     <sect2 id="zend.service.technorati.classes">
624         <title>Zend_Service_Technorati Classes</title>
626         <para>
627             The following classes are returned by the various Technorati queries. Each
628             <classname>Zend_Service_Technorati_*ResultSet</classname> class holds a type-specific
629             result set which can be easily iterated, with each result being contained in a type
630             result object. All result set classes extend
631             <classname>Zend_Service_Technorati_ResultSet</classname> class and implement the
632             <code>SeekableIterator</code> interface, allowing for easy iteration and seeking to a
633             specific result.
635             <itemizedlist>
636                 <listitem>
637                     <para>
638                         <link
639                             linkend="zend.service.technorati.classes.resultset"><classname>Zend_Service_Technorati_ResultSet</classname></link>
640                     </para>
641                 </listitem>
643                 <listitem>
644                     <para>
645                         <link
646                             linkend="zend.service.technorati.classes.cosmosresultset"><classname>Zend_Service_Technorati_CosmosResultSet</classname></link>
647                     </para>
648                 </listitem>
650                 <listitem>
651                     <para>
652                         <link
653                             linkend="zend.service.technorati.classes.searchresultset"><classname>Zend_Service_Technorati_SearchResultSet</classname></link>
654                     </para>
655                 </listitem>
657                 <listitem>
658                     <para>
659                         <link
660                             linkend="zend.service.technorati.classes.tagresultset"><classname>Zend_Service_Technorati_TagResultSet</classname></link>
661                     </para>
662                 </listitem>
664                 <listitem>
665                     <para>
666                         <link
667                             linkend="zend.service.technorati.classes.dailycountsresultset"><classname>Zend_Service_Technorati_DailyCountsResultSet</classname></link>
668                     </para>
669                 </listitem>
671                 <listitem>
672                     <para>
673                         <link
674                             linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link>
675                     </para>
676                 </listitem>
678                 <listitem>
679                     <para>
680                         <link
681                             linkend="zend.service.technorati.classes.result"><classname>Zend_Service_Technorati_Result</classname></link>
682                     </para>
683                 </listitem>
685                 <listitem>
686                     <para>
687                         <link
688                             linkend="zend.service.technorati.classes.cosmosresult"><classname>Zend_Service_Technorati_CosmosResult</classname></link>
689                     </para>
690                 </listitem>
692                 <listitem>
693                     <para>
694                         <link
695                             linkend="zend.service.technorati.classes.searchresult"><classname>Zend_Service_Technorati_SearchResult</classname></link>
696                     </para>
697                 </listitem>
699                 <listitem>
700                     <para>
701                         <link
702                             linkend="zend.service.technorati.classes.tagresult"><classname>Zend_Service_Technorati_TagResult</classname></link>
703                     </para>
704                 </listitem>
706                 <listitem>
707                     <para>
708                         <link
709                             linkend="zend.service.technorati.classes.dailycountsresult"><classname>Zend_Service_Technorati_DailyCountsResult</classname></link>
710                     </para>
711                 </listitem>
713                 <listitem>
714                     <para>
715                         <link
716                             linkend="zend.service.technorati.classes.tagsresult"><classname>Zend_Service_Technorati_TagsResult</classname></link>
717                     </para>
718                 </listitem>
720                 <listitem>
721                     <para>
722                         <link
723                             linkend="zend.service.technorati.classes.getinforesult"><classname>Zend_Service_Technorati_GetInfoResult</classname></link>
724                     </para>
725                 </listitem>
727                 <listitem>
728                     <para>
729                         <link
730                             linkend="zend.service.technorati.classes.bloginforesult"><classname>Zend_Service_Technorati_BlogInfoResult</classname></link>
731                     </para>
732                 </listitem>
734                 <listitem>
735                     <para>
736                         <link
737                             linkend="zend.service.technorati.classes.keyinforesult"><classname>Zend_Service_Technorati_KeyInfoResult</classname></link>
738                     </para>
739                 </listitem>
740             </itemizedlist>
741         </para>
743         <note>
744             <para>
745                 <classname>Zend_Service_Technorati_GetInfoResult</classname>,
746                 <classname>Zend_Service_Technorati_BlogInfoResult</classname> and
747                 <classname>Zend_Service_Technorati_KeyInfoResult</classname> represent exceptions to
748                 the above because they don't belong to a result set and they don't implement any
749                 interface. They represent a single response object and they act as a wrapper for
750                 additional <classname>Zend_Service_Technorati</classname> objects, such as
751                 <classname>Zend_Service_Technorati_Author</classname> and
752                 <classname>Zend_Service_Technorati_Weblog</classname>.
753             </para>
754         </note>
756         <para>
757             The <classname>Zend_Service_Technorati</classname> library includes additional
758             convenient classes representing specific response objects.
759             <classname>Zend_Service_Technorati_Author</classname> represents a single Technorati
760             account, also known as a blog author or blogger.
761             <classname>Zend_Service_Technorati_Weblog</classname> represents a single weblog object,
762             along with all specific weblog properties such as feed <acronym>URL</acronym>s or blog
763             name. For full details please see <classname>Zend_Service_Technorati</classname> in the
764             <ulink url="http://framework.zend.com/apidoc/core/">API reference guide</ulink>.
765         </para>
767         <sect3 id="zend.service.technorati.classes.resultset">
768             <title>Zend_Service_Technorati_ResultSet</title>
770             <para>
771                 <classname>Zend_Service_Technorati_ResultSet</classname> is the most essential
772                 result set. The scope of this class is to be extended by a query-specific child
773                 result set class, and it should never be used to initialize a standalone object.
774                 Each of the specific result sets represents a collection of query-specific <link
775                     linkend="zend.service.technorati.classes.result"><classname>Zend_Service_Technorati_Result</classname></link>
776                 objects.
777             </para>
779             <para>
780                 <classname>Zend_Service_Technorati_ResultSet</classname> implements the
781                 <acronym>PHP</acronym> <code>SeekableIterator</code> interface, and you can iterate
782                 all result objects via the <acronym>PHP</acronym> <code>foreach</code> statement.
783             </para>
785             <example id="zend.service.technorati.classes.resultset.example-1">
786                 <title>Iterating result objects from a resultset collection</title>
788                 <programlisting language="php"><![CDATA[
789 // run a simple query
790 $technorati = new Zend_Service_Technorati('VALID_API_KEY');
791 $resultSet = $technorati->search('php');
793 // $resultSet is now an instance of
794 // Zend_Service_Technorati_SearchResultSet
795 // it extends Zend_Service_Technorati_ResultSet
796 foreach ($resultSet as $result) {
797     // do something with your
798     // Zend_Service_Technorati_SearchResult object
800 ]]></programlisting>
801             </example>
802         </sect3>
804         <sect3 id="zend.service.technorati.classes.cosmosresultset">
805             <title>Zend_Service_Technorati_CosmosResultSet</title>
807             <para>
808                 <classname>Zend_Service_Technorati_CosmosResultSet</classname> represents a
809                 Technorati Cosmos query result set.
810             </para>
812             <note>
813                 <para>
814                     <classname>Zend_Service_Technorati_CosmosResultSet</classname> extends <link
815                         linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>.
816                 </para>
817             </note>
818         </sect3>
820         <sect3 id="zend.service.technorati.classes.searchresultset">
821             <title>Zend_Service_Technorati_SearchResultSet</title>
823             <para>
824                 <classname>Zend_Service_Technorati_SearchResultSet</classname> represents a
825                 Technorati Search query result set.
826             </para>
828             <note>
829                 <para>
830                     <classname>Zend_Service_Technorati_SearchResultSet</classname> extends <link
831                         linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>.
832                 </para>
833             </note>
834         </sect3>
836         <sect3 id="zend.service.technorati.classes.tagresultset">
837             <title>Zend_Service_Technorati_TagResultSet</title>
839             <para>
840                 <classname>Zend_Service_Technorati_TagResultSet</classname> represents a Technorati
841                 Tag query result set.
842             </para>
844             <note>
845                 <para>
846                     <classname>Zend_Service_Technorati_TagResultSet</classname> extends <link
847                         linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>.
848                 </para>
849             </note>
850         </sect3>
852         <sect3 id="zend.service.technorati.classes.dailycountsresultset">
853             <title>Zend_Service_Technorati_DailyCountsResultSet</title>
855             <para>
856                 <classname>Zend_Service_Technorati_DailyCountsResultSet</classname> represents a
857                 Technorati DailyCounts query result set.
858             </para>
860             <note>
861                 <para>
862                     <classname>Zend_Service_Technorati_DailyCountsResultSet</classname> extends
863                     <link
864                         linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>.
865                 </para>
866             </note>
867         </sect3>
869         <sect3 id="zend.service.technorati.classes.tagsresultset">
870             <title>Zend_Service_Technorati_TagsResultSet</title>
872             <para>
873                 <classname>Zend_Service_Technorati_TagsResultSet</classname> represents a Technorati
874                 TopTags or BlogPostTags queries result set.
875             </para>
877             <note>
878                 <para>
879                     <classname>Zend_Service_Technorati_TagsResultSet</classname> extends
880                     <link
881                         linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>.
882                 </para>
883             </note>
884         </sect3>
886         <sect3 id="zend.service.technorati.classes.result">
887             <title>Zend_Service_Technorati_Result</title>
889             <para>
890                 <classname>Zend_Service_Technorati_Result</classname> is the most essential result
891                 object. The scope of this class is to be extended by a query specific child result
892                 class, and it should never be used to initialize a standalone object.
893             </para>
894         </sect3>
896         <sect3 id="zend.service.technorati.classes.cosmosresult">
897             <title>Zend_Service_Technorati_CosmosResult</title>
899             <para>
900                 <classname>Zend_Service_Technorati_CosmosResult</classname> represents a single
901                 Technorati Cosmos query result object. It is never returned as a standalone object,
902                 but it always belongs to a valid <link
903                     linkend="zend.service.technorati.classes.cosmosresultset">Zend_Service_Technorati_CosmosResultSet</link>
904                 object.
905             </para>
907             <note>
908                 <para>
909                     <classname>Zend_Service_Technorati_CosmosResult</classname> extends <link
910                         linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>.
911                 </para>
912             </note>
913         </sect3>
915         <sect3 id="zend.service.technorati.classes.searchresult">
916             <title>Zend_Service_Technorati_SearchResult</title>
918             <para>
919                 <classname>Zend_Service_Technorati_SearchResult</classname> represents a single
920                 Technorati Search query result object. It is never returned as a standalone object,
921                 but it always belongs to a valid <link
922                     linkend="zend.service.technorati.classes.searchresultset">Zend_Service_Technorati_SearchResultSet</link>
923                 object.
924             </para>
926             <note>
927                 <para>
928                     <classname>Zend_Service_Technorati_SearchResult</classname> extends <link
929                         linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>.
930                 </para>
931             </note>
932         </sect3>
934         <sect3 id="zend.service.technorati.classes.tagresult">
935             <title>Zend_Service_Technorati_TagResult</title>
937             <para>
938                 <classname>Zend_Service_Technorati_TagResult</classname> represents a single
939                 Technorati Tag query result object. It is never returned as a standalone object, but
940                 it always belongs to a valid <link
941                     linkend="zend.service.technorati.classes.tagresultset">Zend_Service_Technorati_TagResultSet</link>
942                 object.
943             </para>
945             <note>
946                 <para>
947                     <classname>Zend_Service_Technorati_TagResult</classname> extends <link
948                         linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>.
949                 </para>
950             </note>
951         </sect3>
953         <sect3 id="zend.service.technorati.classes.dailycountsresult">
954             <title>Zend_Service_Technorati_DailyCountsResult</title>
956             <para>
957                 <classname>Zend_Service_Technorati_DailyCountsResult</classname> represents a single
958                 Technorati DailyCounts query result object. It is never returned as a standalone
959                 object, but it always belongs to a valid <link
960                     linkend="zend.service.technorati.classes.dailycountsresultset">Zend_Service_Technorati_DailyCountsResultSet</link>
961                 object.
962             </para>
964             <note>
965                 <para>
966                     <classname>Zend_Service_Technorati_DailyCountsResult</classname> extends <link
967                         linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>.
968                 </para>
969             </note>
970         </sect3>
972         <sect3 id="zend.service.technorati.classes.tagsresult">
973             <title>Zend_Service_Technorati_TagsResult</title>
975             <para>
976                 <classname>Zend_Service_Technorati_TagsResult</classname> represents a single
977                 Technorati TopTags or BlogPostTags query result object. It is never returned as a
978                 standalone object, but it always belongs to a valid <link
979                     linkend="zend.service.technorati.classes.tagsresultset">Zend_Service_Technorati_TagsResultSet</link>
980                 object.
981             </para>
983             <note>
984                 <para>
985                     <classname>Zend_Service_Technorati_TagsResult</classname> extends <link
986                         linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>.
987                 </para>
988             </note>
989         </sect3>
991         <sect3 id="zend.service.technorati.classes.getinforesult">
992             <title>Zend_Service_Technorati_GetInfoResult</title>
994             <para>
995                 <classname>Zend_Service_Technorati_GetInfoResult</classname> represents a single
996                 Technorati GetInfo query result object.
997             </para>
998         </sect3>
1000         <sect3 id="zend.service.technorati.classes.bloginforesult">
1001             <title>Zend_Service_Technorati_BlogInfoResult</title>
1003             <para>
1004                 <classname>Zend_Service_Technorati_BlogInfoResult</classname> represents a single
1005                 Technorati BlogInfo query result object.
1006             </para>
1007         </sect3>
1009         <sect3 id="zend.service.technorati.classes.keyinforesult">
1010             <title>Zend_Service_Technorati_KeyInfoResult</title>
1012             <para>
1013                 <classname>Zend_Service_Technorati_KeyInfoResult</classname> represents a single
1014                 Technorati KeyInfo query result object. It provides information about your
1015                 <link linkend="zend.service.technorati.checking-api-daily-usage">Technorati
1016                     <acronym>API</acronym> Key daily usage</link>.
1017             </para>
1018         </sect3>
1019     </sect2>
1020 </sect1>