Zend_File_Transfer-Migration.xml 18 KB

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