Zend_Controller-Router-Route-Rest.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect3 id="zend.controller.router.routes.rest">
  4. <title>Zend_Rest_Route</title>
  5. <para>
  6. Le composant <classname>Zend_Rest</classname> contient une route RESTful pour
  7. <classname>Zend_Controller_Router_Rewrite</classname>. Cette route permet un
  8. schéma de routage fonction de la méthode <acronym>HTTP</acronym> et de
  9. l'<acronym>URI</acronym> afin d'y faire correspondre un module, contrôleur,
  10. et action. Le tableau suivant vous donne un aperçu du schéma de routage.
  11. </para>
  12. <table frame="all">
  13. <title>Comportement de Zend_Rest_Route</title>
  14. <tgroup cols='3' align='left' colsep='1' rowsep='1'>
  15. <colspec colname='method' />
  16. <colspec colname='URI' />
  17. <colspec colname='route' />
  18. <thead>
  19. <row>
  20. <entry>Méthode</entry>
  21. <entry><acronym>URI</acronym></entry>
  22. <entry>Module_Controller::action</entry>
  23. </row>
  24. </thead>
  25. <tbody>
  26. <row>
  27. <entry>GET</entry>
  28. <entry><filename>/product/ratings/</filename></entry>
  29. <entry><methodname>Product_RatingsController::indexAction()</methodname></entry>
  30. </row>
  31. <row>
  32. <entry>GET</entry>
  33. <entry><filename>/product/ratings/:id</filename></entry>
  34. <entry><methodname>Product_RatingsController::getAction()</methodname></entry>
  35. </row>
  36. <row>
  37. <entry>POST</entry>
  38. <entry><filename>/product/ratings</filename></entry>
  39. <entry><methodname>Product_RatingsController::postAction()</methodname></entry>
  40. </row>
  41. <row>
  42. <entry>PUT</entry>
  43. <entry><filename>/product/ratings/:id</filename></entry>
  44. <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
  45. </row>
  46. <row>
  47. <entry>DELETE</entry>
  48. <entry><filename>/product/ratings/:id</filename></entry>
  49. <entry>
  50. <methodname>Product_RatingsController::deleteAction()</methodname>
  51. </entry>
  52. </row>
  53. <row>
  54. <entry>POST</entry>
  55. <entry><filename>/product/ratings/:id?_method="PUT"</filename></entry>
  56. <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
  57. </row>
  58. <row>
  59. <entry>POST</entry>
  60. <entry><filename>/product/ratings/:id?_method="DELETE"</filename></entry>
  61. <entry>
  62. <methodname>Product_RatingsController::deleteAction()</methodname>
  63. </entry>
  64. </row>
  65. </tbody>
  66. </tgroup>
  67. </table>
  68. <para>
  69. Pour activer <classname>Zend_Rest_Route</classname> pour une application entière,
  70. construisez en un objet sans paramètre spécifique et ajoutez le comme route par défaut dans le
  71. contrôleur frontal:
  72. </para>
  73. <programlisting language="php"><![CDATA[
  74. $front = Zend_Controller_Front::getInstance();
  75. $restRoute = new Zend_Rest_Route($front);
  76. $front->getRouter()->addRoute('default', $restRoute);
  77. ]]></programlisting>
  78. <note>
  79. <para>
  80. Si <classname>Zend_Rest_Route</classname> ne trouve aucun module, contrôleur, action valides,
  81. il retournera false et la route suivante sera alors analysée par le routeur.
  82. </para>
  83. </note>
  84. <para>
  85. Pour activer <classname>Zend_Rest_Route</classname> pour des modules spécifiques, construisez
  86. l'objet avec comme troisième paramètre, un tableau de noms de modules:
  87. </para>
  88. <programlisting language="php"><![CDATA[
  89. $front = Zend_Controller_Front::getInstance();
  90. $restRoute = new Zend_Rest_Route($front, array(), array('product'));
  91. $front->getRouter()->addRoute('rest', $restRoute);
  92. ]]></programlisting>
  93. <para>
  94. Pour activer <classname>Zend_Rest_Route</classname> pour des contrôleurs spécifiques,
  95. construisez l'objet avec comme troisième paramètre, un tableau de noms de contrôleurs
  96. en correspondance avec des noms de modules.
  97. </para>
  98. <programlisting language="php"><![CDATA[
  99. $front = Zend_Controller_Front::getInstance();
  100. $restRoute = new Zend_Rest_Route($front, array(), array(
  101. 'product' => array('ratings')
  102. ));
  103. $front->getRouter()->addRoute('rest', $restRoute);
  104. ]]></programlisting>
  105. <sect4 id="zend.rest.controller">
  106. <title>Zend_Rest_Controller</title>
  107. <para>
  108. Pour vous aidez à utiliser des contrôleurs avec
  109. <classname>Zend_Rest_Route</classname>, faites les étendre
  110. <classname>Zend_Rest_Controller</classname>.
  111. <classname>Zend_Rest_Controller</classname> définit les 5 opérations RESTful les
  112. plus connues sous forme de méthodes abstraites.
  113. </para>
  114. <itemizedlist>
  115. <listitem>
  116. <para>
  117. <emphasis><methodname>indexAction()</methodname></emphasis> -
  118. Devrait récupérer un index des ressources et le passer à la vue.
  119. </para>
  120. </listitem>
  121. <listitem>
  122. <para>
  123. <emphasis><methodname>getAction()</methodname></emphasis> -
  124. Devrait récupérer des données d'une ressource définie par <acronym>URI</acronym>
  125. et les passer à la vue.
  126. </para>
  127. </listitem>
  128. <listitem>
  129. <para>
  130. <emphasis><methodname>postAction()</methodname></emphasis> -
  131. Devrait accepter une nouvelle ressource et la faire persister (la sauver).
  132. </para>
  133. </listitem>
  134. <listitem>
  135. <para>
  136. <emphasis><methodname>putAction()</methodname></emphasis> -
  137. Devrait accepter une ressource indentifiée par <acronym>URI</acronym> et
  138. la faire persister (la sauver).
  139. </para>
  140. </listitem>
  141. <listitem>
  142. <para>
  143. <emphasis><methodname>deleteAction()</methodname></emphasis> -
  144. Devrait supprimer la ressource identifiée par <acronym>URI</acronym>.
  145. </para>
  146. </listitem>
  147. </itemizedlist>
  148. </sect4>
  149. </sect3>
  150. <!--
  151. vim:se ts=4 sw=4 et:
  152. -->