Zend_Feed-Introduction.xml 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.feed.introduction">
  5. <title>Introduction</title>
  6. <para>
  7. Le composant <classname>Zend_Feed</classname> offre des services permettant de
  8. traiter des flux <acronym>RSS</acronym> et Atom. Il permet d'accéder aux éléments d'un flux, aux attributs
  9. d'un flux et aux attributs des entrées d'un flux, tout cela au moyen d'une syntaxe
  10. intuitive. <classname>Zend_Feed</classname> prend aussi complètement en charge la
  11. modification de la structure des flux et des entrées, avec la même syntaxe intuitive que
  12. précédemment, et il sait transformer le résultat en <acronym>XML</acronym>. À l'avenir, la prise en charge des
  13. modifications pourrait aussi inclure la prise en charge du protocole de publication
  14. Atom.
  15. </para>
  16. <para>
  17. Sur le plan de la programmation, <classname>Zend_Feed</classname> est constitué d'une
  18. classe de base <classname>Zend_Feed</classname> et de classes de base abstraites
  19. <classname>Zend_Feed_Abstract</classname> et
  20. <classname>Zend_Feed_Entry_Abstract</classname>, permettant de représenter respectivement
  21. des flux et des entrées ; <classname>Zend_Feed</classname> contient aussi des
  22. implémentations particulières de ces classes abstraites pour les flux et entrées <acronym>RSS</acronym> et
  23. Atom ainsi qu'un assistant en coulisses qui assure le bon fonctionnement de la syntaxe
  24. intuitive.
  25. </para>
  26. <para>
  27. Dans l'exemple ci-dessous, nous illustrons une utilisation simple de
  28. <classname>Zend_Feed</classname>&#160;: on obtient un flux <acronym>RSS</acronym> et on enregistre les
  29. portions du flux qui nous intéressent dans un tableau <acronym>PHP</acronym> simple, qui pourra ensuite être
  30. utilisé pour afficher les données, les stocker dans une base de données etc.
  31. </para>
  32. <note>
  33. <title>Attention</title>
  34. <para>
  35. Beaucoup de flux <acronym>RSS</acronym> ont à leur disposition différentes propriétés, pour les
  36. canaux comme pour les éléments. La spécification <acronym>RSS</acronym> spécifie beaucoup de propriétés
  37. optionnelles et gardez donc cela à l'esprit lorsque vous écrivez du code qui manipule
  38. des données <acronym>RSS</acronym>.
  39. </para>
  40. </note>
  41. <example id="zend.feed.introduction.example.rss">
  42. <title>Manipuler des données RSS avec Zend_Feed</title>
  43. <programlisting language="php"><![CDATA[
  44. // on va chercher les dernières news de Slashdot
  45. try {
  46. $rssSlashdot =
  47. Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
  48. } catch (Zend_Feed_Exception $e) {
  49. // l'importation du flux a échoué
  50. echo "Une exception a été interceptée lors de l'importation "
  51. . "du flux : {$e->getMessage()}\n";
  52. exit;
  53. }
  54. // on initialise un tableau contenant les données du canal RSS
  55. $canal = array(
  56. 'titre' => $rssSlashdot->title(),
  57. 'lien' => $rssSlashdot->link(),
  58. 'description' => $rssSlashdot->description(),
  59. 'elements' => array()
  60. );
  61. // on itère sur chaque élément du canal et
  62. // on stocke les données qui nous intéressent
  63. foreach ($rssSlashdot as $elem) {
  64. $canal['elements'][] = array(
  65. 'titre' => $elem->title(),
  66. 'lien' => $elem->link(),
  67. 'description' => $elem->description()
  68. );
  69. }
  70. ]]></programlisting>
  71. </example>
  72. </sect1>