Zend_File_Transfer-Migration.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 12789 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.file.transfer.migration">
  5. <title>Migrer à partir des versions précédentes</title>
  6. <para>L'API de <classname>Zend_File_Transfer</classname> a changé au cours du temps. Si vous avez commencé à utiliser
  7. <classname>Zend_File_Transfer</classname> et ses sous-composants avec les versions précédentes, suivez les lignes directrices
  8. ci-dessous pour migrer vos scripts et ainsi utiliser la nouvelle API.</para>
  9. <sect2 id="zend.file.transfer.migration.fromonesixtooneseven">
  10. <title>Migrer de la version 1.6 vers 1.7 ou plus récent</title>
  11. <sect3 id="zend.file.transfer.migration.fromonesixtooneseven.validators">
  12. <title>Changements quand vous utilisez des filtres ou des validateurs</title>
  13. <para>Certaines remarques des utilisateurs indiquaient que les validateurs de
  14. <classname>Zend_File_Transfer</classname> ne fonctionnaient pas correctement avec <classname>Zend_Config</classname> dû au fait
  15. qu'ils n'utilisait pas de tableaux nommés.</para>
  16. <para>De plus, tous les filtres et validateurs de <classname>Zend_File_Transfer</classname> ont été réécrits. Même si
  17. les anciennes signatures continuent à fonctionner, elles ont été marqués comme dépréciées et émettent une
  18. notice PHP vous informant de faire le changement.</para>
  19. <para>La liste suivante vous montre les changements à réaliser pour une utilisation appropriée des
  20. paramètres.</para>
  21. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.rename">
  22. <title>Filtre <emphasis>Rename</emphasis></title>
  23. <itemizedlist>
  24. <listitem>
  25. <para>Ancienne API : <classname>Zend_Filter_File_Rename($oldfile, $newfile, $overwrite)</classname></para>
  26. </listitem>
  27. <listitem>
  28. <para>Nouvelle API : <classname>Zend_Filter_File_Rename($options)</classname> où <code>$options</code>
  29. accepte un tableau avec les clés suivantes : <emphasis>source</emphasis> est équivalent à
  30. <code>$oldfile</code>, <emphasis>target</emphasis> est équivalent à <code>$newfile</code>,
  31. <emphasis>overwrite</emphasis> est équivalent à <code>$overwrite.</code></para>
  32. </listitem>
  33. </itemizedlist>
  34. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.rename.example">
  35. <title>Changer le filtre rename entre 1.6 et 1.7</title>
  36. <programlisting role="php"><![CDATA[
  37. // Exemple pour 1.6
  38. $upload = new Zend_File_Transfer_Adapter_Http();
  39. $upload->addFilter('Rename',
  40. array('/path/to/oldfile', '/path/to/newfile', true));
  41. // Même exemple pour 1.7
  42. $upload = new Zend_File_Transfer_Adapter_Http();
  43. $upload->addFilter('Rename',
  44. array('source' => '/path/to/oldfile',
  45. 'target' => '/path/to/newfile',
  46. 'overwrite' => true));
  47. ]]></programlisting>
  48. </example>
  49. </sect4>
  50. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.count">
  51. <title>Validateur <emphasis>Count</emphasis></title>
  52. <itemizedlist>
  53. <listitem>
  54. <para>Ancienne API : <classname>Zend_Validate_File_Count($min, $max)</classname></para>
  55. </listitem>
  56. <listitem>
  57. <para>Nouvelle API : <classname>Zend_Validate_File_Count($options)</classname> où <code>$options</code>
  58. accepte un tableau avec les clés suivantes : <emphasis>min</emphasis> est équivalent à
  59. <code>$min</code>, <emphasis>max</emphasis> est équivalent à <code>$max</code>.</para>
  60. </listitem>
  61. </itemizedlist>
  62. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.count.example">
  63. <title>Changer le validateur count entre 1.6 et 1.7</title>
  64. <programlisting role="php"><![CDATA[
  65. // Exemple pour 1.6
  66. $upload = new Zend_File_Transfer_Adapter_Http();
  67. $upload->addValidator('Count',
  68. array(2, 3));
  69. // Même exemple pour 1.7
  70. $upload = new Zend_File_Transfer_Adapter_Http();
  71. $upload->addValidator('Count',
  72. false,
  73. array('min' => 2,
  74. 'max' => 3));
  75. ]]></programlisting>
  76. </example>
  77. </sect4>
  78. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.extension">
  79. <title>Validateur <emphasis>Extension</emphasis></title>
  80. <itemizedlist>
  81. <listitem>
  82. <para>Ancienne API : <classname>Zend_Validate_File_Extension($extension, $case)</classname></para>
  83. </listitem>
  84. <listitem>
  85. <para>Nouvelle API : <classname>Zend_Validate_File_Extension($options)</classname> où
  86. <code>$options</code> accepte un tableau avec les clés suivantes : <emphasis>*</emphasis> est
  87. équivalent à <code>$extension</code> et peut avoir tout autre clé, <emphasis>case</emphasis> est
  88. équivalent à <code>$case</code>.</para>
  89. </listitem>
  90. </itemizedlist>
  91. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.extension.example">
  92. <title>Changer le validateur extension entre 1.6 et 1.7</title>
  93. <programlisting role="php"><![CDATA[
  94. // Exemple pour 1.6
  95. $upload = new Zend_File_Transfer_Adapter_Http();
  96. $upload->addValidator('Extension',
  97. array('jpg,gif,bmp', true));
  98. // Même exemple pour 1.7
  99. $upload = new Zend_File_Transfer_Adapter_Http();
  100. $upload->addValidator('Extension',
  101. false,
  102. array('extension1' => 'jpg,gif,bmp',
  103. 'case' => true));
  104. ]]></programlisting>
  105. </example>
  106. </sect4>
  107. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.filessize">
  108. <title>Validateur <emphasis>FilesSize</emphasis></title>
  109. <itemizedlist>
  110. <listitem>
  111. <para>Ancienne API : <classname>Zend_Validate_File_FilesSize($min, $max, $bytestring)</classname></para>
  112. </listitem>
  113. <listitem>
  114. <para>Nouvelle API : <classname>Zend_Validate_File_FilesSize($options)</classname> où
  115. <code>$options</code> accepte un tableau avec les clés suivantes : <emphasis>min</emphasis> est
  116. équivalent à <code>$min</code>, <emphasis>max</emphasis> est équivalent à <code>$max</code>,
  117. <emphasis>bytestring</emphasis> est équivalent à <code>$bytestring</code>.</para>
  118. </listitem>
  119. </itemizedlist>
  120. <para>De plus la signature de la méthode <code>useByteString()</code> a changé. Elle peut être seulement
  121. utilisée pour tester si le validateur prévoie d'utiliser les chaînes lisibles ou la valeur brute dans
  122. les messages générées. Pour paramétrer la valeur de cette option, utilisez la méthode
  123. <code>setUseByteString()</code>.</para>
  124. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.filessize.example">
  125. <title>Changer le validateur filessize entre 1.6 et 1.7</title>
  126. <programlisting role="php"><![CDATA[
  127. // Exemple pour 1.6
  128. $upload = new Zend_File_Transfer_Adapter_Http();
  129. $upload->addValidator('FilesSize',
  130. array(100, 10000, true));
  131. // Même exemple pour 1.7
  132. $upload = new Zend_File_Transfer_Adapter_Http();
  133. $upload->addValidator('FilesSize',
  134. false,
  135. array('min' => 100,
  136. 'max' => 10000,
  137. 'bytestring' => true));
  138. // Exemple pour 1.6
  139. $upload->useByteString(true); // set flag
  140. // Même exemple pour 1.7
  141. $upload->setUseByteSting(true); // set flag
  142. ]]></programlisting>
  143. </example>
  144. </sect4>
  145. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.hash">
  146. <title>Validateur <emphasis>Hash</emphasis></title>
  147. <itemizedlist>
  148. <listitem>
  149. <para>Ancienne API : <classname>Zend_Validate_File_Hash($hash, $algorithm)</classname></para>
  150. </listitem>
  151. <listitem>
  152. <para>Nouvelle API : <classname>Zend_Validate_File_Hash($options)</classname> où <code>$options</code>
  153. accepte un tableau avec les clés suivantes : <emphasis>*</emphasis> est équivalent à
  154. <code>$hash</code> et peut avoir tout autre clé, <emphasis>algorithm</emphasis> est équivalent à
  155. <code>$algorithm</code>.</para>
  156. </listitem>
  157. </itemizedlist>
  158. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.hash.example">
  159. <title>Changer le validateur hash entre 1.6 et 1.7</title>
  160. <programlisting role="php"><![CDATA[
  161. // Exemple pour 1.6
  162. $upload = new Zend_File_Transfer_Adapter_Http();
  163. $upload->addValidator('Hash',
  164. array('12345', 'md5'));
  165. // Même exemple pour 1.7
  166. $upload = new Zend_File_Transfer_Adapter_Http();
  167. $upload->addValidator('Hash',
  168. false,
  169. array('hash1' => '12345',
  170. 'algorithm' => 'md5'));
  171. ]]></programlisting>
  172. </example>
  173. </sect4>
  174. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.imagesize">
  175. <title>Validateur <emphasis>ImageSize</emphasis></title>
  176. <itemizedlist>
  177. <listitem>
  178. <para>Ancienne API : <classname>Zend_Validate_File_ImageSize($minwidth, $minheight, $maxwidth,
  179. $maxheight)</classname></para>
  180. </listitem>
  181. <listitem>
  182. <para>Nouvelle API : <classname>Zend_Validate_File_FilesSize($options)</classname> où
  183. <code>$options</code> accepte un tableau avec les clés suivantes : <emphasis>minwidth</emphasis>
  184. est équivalent à <code>$minwidth</code>, <emphasis>maxwidth</emphasis> est équivalent à
  185. <code>$maxwidth</code>, <emphasis>minheight</emphasis> est équivalent à <code>$minheight</code>,
  186. <emphasis>maxheight</emphasis> est équivalent à <code>$maxheight</code>.</para>
  187. </listitem>
  188. </itemizedlist>
  189. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.imagesize.example">
  190. <title>Changer le validateur imagesize entre 1.6 et 1.7</title>
  191. <programlisting role="php"><![CDATA[
  192. // Exemple pour 1.6
  193. $upload = new Zend_File_Transfer_Adapter_Http();
  194. $upload->addValidator('ImageSize',
  195. array(10, 10, 100, 100));
  196. // Même exemple pour 1.7
  197. $upload = new Zend_File_Transfer_Adapter_Http();
  198. $upload->addValidator('ImageSize',
  199. false,
  200. array('minwidth' => 10,
  201. 'minheight' => 10,
  202. 'maxwidth' => 100,
  203. 'maxheight' => 100));
  204. ]]></programlisting>
  205. </example>
  206. </sect4>
  207. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.size">
  208. <title>Validateur <emphasis>Size</emphasis></title>
  209. <itemizedlist>
  210. <listitem>
  211. <para>Ancienne API : <classname>Zend_Validate_File_Size($min, $max, $bytestring)</classname></para>
  212. </listitem>
  213. <listitem>
  214. <para>Nouvelle API : <classname>Zend_Validate_File_Size($options)</classname> où <code>$options</code>
  215. accepte un tableau avec les clés suivantes : <emphasis>min</emphasis> est équivalent à
  216. <code>$min</code>, <emphasis>max</emphasis> est équivalent à <code>$max</code>,
  217. <emphasis>bytestring</emphasis> est équivalent à <code>$bytestring</code></para>
  218. </listitem>
  219. </itemizedlist>
  220. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.size.example">
  221. <title>Changer le validateur size entre 1.6 et 1.7</title>
  222. <programlisting role="php"><![CDATA[
  223. // Exemple pour 1.6
  224. $upload = new Zend_File_Transfer_Adapter_Http();
  225. $upload->addValidator('Size',
  226. array(100, 10000, true));
  227. // Même exemple pour 1.7
  228. $upload = new Zend_File_Transfer_Adapter_Http();
  229. $upload->addValidator('Size',
  230. false,
  231. array('min' => 100,
  232. 'max' => 10000,
  233. 'bytestring' => true));
  234. ]]></programlisting>
  235. </example>
  236. </sect4>
  237. </sect3>
  238. </sect2>
  239. <sect2 id="zend.file.transfer.migration.fromonesixonetoonesixtwo">
  240. <title>Migrer de la version 1.6.1 vers 1.6.2 ou plus récent</title>
  241. <sect3 id="zend.file.transfer.migration.fromonesixonetoonesixtwo.validators">
  242. <title>Changements quand vous utilisez des validateurs</title>
  243. <para>Certaines remarques des utilisateurs indiquaient que les validateurs de
  244. <classname>Zend_File_Transfer</classname> ne fonctionnaient pas comme ceux par défaut fournis avec
  245. <classname>Zend_Form</classname>. <classname>Zend_Form</classname> permet par exemple l'utilisation du paramètre
  246. <code>breakChainOnFailure</code> qui stoppe la validation de tous les validateurs suivants dès qu'une erreur
  247. de validation apparaît.</para>
  248. <para>Nous avons donc ajouter ce paramètre à tous les validateurs existants pour
  249. <classname>Zend_File_Transfer</classname>.</para>
  250. <itemizedlist>
  251. <listitem>
  252. <para>Ancienne API : <code>addValidator($validator, $options, $files)</code>.</para>
  253. </listitem>
  254. <listitem>
  255. <para>Nouvelle API : <code>addValidator($validator, $breakChainOnFailure, $options,
  256. $files)</code>.</para>
  257. </listitem>
  258. </itemizedlist>
  259. <para>Pour migrer vos scripts vers la nouvelle API, ajoutez simplement un a <code>false</code> après voir
  260. défini le validateur souhaité.</para>
  261. <example id="zend.file.transfer.migration.fromonesixonetoonesixtwo.example">
  262. <title>Changer les validateurs de fichiers de 1.6.1 vers 1.6.2</title>
  263. <programlisting role="php"><![CDATA[
  264. // Exemple pour 1.6.1
  265. $upload = new Zend_File_Transfer_Adapter_Http();
  266. $upload->addValidator('FilesSize', array('1B', '100kB'));
  267. // Même exemple pour 1.6.2 et plus récent
  268. // Notez l'ajout du booléen false
  269. $upload = new Zend_File_Transfer_Adapter_Http();
  270. $upload->addValidator('FilesSize', false, array('1B', '100kB'));]]></programlisting>
  271. </example>
  272. </sect3>
  273. </sect2>
  274. </sect1>