Zend_Feed-ModifyingFeed.xml 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.feed.modifying-feed">
  5. <title>Modifier la structure du flux ou des entrées</title>
  6. <para>
  7. La syntaxe intuitive de <classname>Zend_Feed</classname> peut aussi bien servir à
  8. lire des flux ou des entrées qu'à les construire et les modifier. Vous pouvez facilement
  9. transformer vos nouveaux objets (ou objets modifiés) en code <acronym>XML</acronym> bien formé et enregistrer
  10. ensuite ce code dans un fichier ou le renvoyer au serveur.
  11. </para>
  12. <example id="zend.feed.modifying-feed.example.modifying">
  13. <title>Modifier l'entrée existante d'un flux</title>
  14. <programlisting language="php"><![CDATA[
  15. $flux = new Zend_Feed_Atom('http://atom.exemple.com/flux/1');
  16. $entree = $flux->current();
  17. $entree->title = 'Ceci est un nouveau titre';
  18. $entree->author->email = 'mon_email@exemple.com';
  19. echo $entree->saveXML();
  20. ]]></programlisting>
  21. <para>
  22. Ce code affichera une représentation <acronym>XML</acronym> complète (y compris le prologue
  23. <code>&lt;?xml ...&gt;</code>) de la nouvelle entrée, avec les espaces de noms <acronym>XML</acronym>
  24. nécessaires.
  25. </para>
  26. <para>
  27. Notez que le code ci-dessus fonctionnera même si l'entrée existante ne possédait
  28. pas de balise <code>author</code>. Vous pouvez utiliser autant de fois que vous le
  29. souhaitez l'opérateur d'accès <code>-&gt;</code> dans une instruction
  30. d'affectation&#160;; si nécessaire, les niveaux intermédiaires seront créés pour vous
  31. automatiquement.
  32. </para>
  33. </example>
  34. <para>
  35. Si vous souhaitez utiliser dans votre entrée un espace de noms autre que
  36. <code>atom:</code>, <code>rss:</code> ou <code>osrss:</code>, vous devez enregistrer cet
  37. espace de noms auprès de <classname>Zend_Feed</classname> à l'aide de la méthode
  38. <methodname>Zend_Feed::registerNamespace()</methodname>. Lorsque vous modifiez un élément
  39. existant, il gardera toujours son espace de noms d'origine. Lorsque vous ajoutez un
  40. élément, il utilisera l'espace de noms par défaut si vous ne spécifiez pas explicitement un
  41. autre espace de noms.
  42. </para>
  43. <example id="zend.feed.modifying-feed.example.creating">
  44. <title>
  45. Créer une entrée Atom dont les éléments appartiennent à un espace de noms
  46. personnalisé
  47. </title>
  48. <programlisting language="php"><![CDATA[
  49. $entree = new Zend_Feed_Entry_Atom();
  50. // en Atom, id est toujours affecté par le serveur
  51. $entree->title = 'mon entrée perso';
  52. $entree->author->name = 'Auteur';
  53. $entree->author->email = 'moi@exemple.com';
  54. // maintenant on s'occupe de la partie personnalisée
  55. Zend_Feed::registerNamespace('monen',
  56. 'http://www.exemple.com/monen/1.0');
  57. $entree->{'monen:monelement_un'} = 'ma première valeur personnalisée';
  58. $entree->{'monen:conteneur_elt'}
  59. ->partie1 = 'première partie imbriquée personnalisée';
  60. $entree->{'monen:conteneur_elt'}
  61. ->partie2 = 'deuxième partie imbriquée personnalisée';
  62. echo $entree->saveXML();
  63. ]]></programlisting>
  64. </example>
  65. </sect1>