Zend_File_Transfer-Migration.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14978 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.file.transfer.migration">
  5. <title>Migration von vorhergehenden Versionen</title>
  6. <para>
  7. Die API von <classname>Zend_File_Transfer</classname> wurde von Zeit zu Zeit verändert. Wenn man bereits
  8. angefangen hat <classname>Zend_File_Transfer</classname> und dessen Subkomponenten in vorhergehenden Versionen
  9. zu verwenden sollte man den anbei beschriebenen Richtlinien folgen um eigene Skripts auf die neue
  10. API zu migrieren.
  11. </para>
  12. <sect2 id="zend.file.transfer.migration.fromonesixtooneseven">
  13. <title>Migration von 1.6 zu 1.7 oder neuer</title>
  14. <sect3 id="zend.file.transfer.migration.fromonesixtooneseven.validators">
  15. <title>Änderungen bei der Verwendung von Filtern und Prüfungen</title>
  16. <para>
  17. Wie von Benutzern erwähnt, arbeiteten die Prüfungen von <classname>Zend_File_Transfer</classname>
  18. nicht in Verbindung mit <classname>Zend_Config</classname> zusammen, durch den Fakt das Sie keine
  19. benannten Arrays verwendet haben.
  20. </para>
  21. <para>
  22. Deswegen wurden alle Filter und Prüfungen für <classname>Zend_File_Transfer</classname> überarbeitet.
  23. Wärend die alten Signaturen weiterhin funktionieren, wurden sie als veraltet markiert, und
  24. werfen eine PHP Notiz mit der Aufforderung das zu beheben.
  25. </para>
  26. <para>
  27. Die folgende Liste zeigt die Änderungen und was für die richtige Verwendung der Parameter
  28. getan werden muß.
  29. </para>
  30. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.rename">
  31. <title>Filter: <emphasis>Rename</emphasis></title>
  32. <itemizedlist>
  33. <listitem><para>
  34. Alte API der Methode: <classname>Zend_Filter_File_Rename($oldfile, $newfile, $overwrite)</classname>
  35. </para></listitem>
  36. <listitem><para>
  37. Neue API der Methode: <classname>Zend_Filter_File_Rename($options)</classname> wobei $options
  38. die folgenden Schlüssel für das Array akzeptiert:
  39. <emphasis>source</emphasis> identisch mit $oldfile,
  40. <emphasis>target</emphasis> identisch mit $newfile,
  41. <emphasis>overwrite</emphasis> identisch mit $overwrite
  42. </para></listitem>
  43. </itemizedlist>
  44. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.rename.example">
  45. <title>Änderungen für den Rename Filter von 1.6 zu 1.7</title>
  46. <programlisting role="php"><![CDATA[
  47. // Beispiel für 1.6
  48. $upload = new Zend_File_Transfer_Adapter_Http();
  49. $upload->addFilter('Rename',
  50. array('/path/to/oldfile', '/path/to/newfile', true));
  51. // Gleiches Beispiel für 1.7
  52. $upload = new Zend_File_Transfer_Adapter_Http();
  53. $upload->addFilter('Rename',
  54. array('source' => '/path/to/oldfile',
  55. 'target' => '/path/to/newfile',
  56. 'overwrite' => true));
  57. ]]>
  58. </programlisting>
  59. </example>
  60. </sect4>
  61. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.count">
  62. <title>Prüfung: <emphasis>Count</emphasis></title>
  63. <itemizedlist>
  64. <listitem><para>
  65. Alte API der Methode: <classname>Zend_Validate_File_Count($min, $max)</classname>
  66. </para></listitem>
  67. <listitem><para>
  68. Neue API der Methode: <classname>Zend_Validate_File_Count($options)</classname> wobei $options
  69. die folgenden Schlüssel für das Array akzeptiert:
  70. <emphasis>min</emphasis> identisch mit $min,
  71. <emphasis>max</emphasis> identisch mit $max,
  72. </para></listitem>
  73. </itemizedlist>
  74. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.count.example">
  75. <title>Änderungen für die Count Prüfung von 1.6 zu 1.7</title>
  76. <programlisting role="php"><![CDATA[
  77. // Beispiel für 1.6
  78. $upload = new Zend_File_Transfer_Adapter_Http();
  79. $upload->addValidator('Count',
  80. array(2, 3));
  81. // Gleiches Beispiel für 1.7
  82. $upload = new Zend_File_Transfer_Adapter_Http();
  83. $upload->addValidator('Count',
  84. false,
  85. array('min' => 2,
  86. 'max' => 3));
  87. ]]>
  88. </programlisting>
  89. </example>
  90. </sect4>
  91. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.extension">
  92. <title>Prüfung: <emphasis>Extension</emphasis></title>
  93. <itemizedlist>
  94. <listitem><para>
  95. Alte API der Methode: <classname>Zend_Validate_File_Extension($extension, $case)</classname>
  96. </para></listitem>
  97. <listitem><para>
  98. Neue API der Methode: <classname>Zend_Validate_File_Extension($options)</classname> wobei $options
  99. die folgenden Schlüssel für das Array akzeptiert:
  100. <emphasis>*</emphasis> identisch mit $extension und kann jeden anderen Schlüssel haben
  101. <emphasis>case</emphasis> identisch mit $case,
  102. </para></listitem>
  103. </itemizedlist>
  104. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.extension.example">
  105. <title>Änderungen für die Extension Prüfung von 1.6 zu 1.7</title>
  106. <programlisting role="php"><![CDATA[
  107. // Beispiel für 1.6
  108. $upload = new Zend_File_Transfer_Adapter_Http();
  109. $upload->addValidator('Extension',
  110. array('jpg,gif,bmp', true));
  111. // Gleiches Beispiel für 1.7
  112. $upload = new Zend_File_Transfer_Adapter_Http();
  113. $upload->addValidator('Extension',
  114. false,
  115. array('extension1' => 'jpg,gif,bmp',
  116. 'case' => true));
  117. ]]>
  118. </programlisting>
  119. </example>
  120. </sect4>
  121. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.filessize">
  122. <title>Prüfung: <emphasis>FilesSize</emphasis></title>
  123. <itemizedlist>
  124. <listitem><para>
  125. Alte API der Methode: <classname>Zend_Validate_File_FilesSize($min, $max, $bytestring)</classname>
  126. </para></listitem>
  127. <listitem><para>
  128. Neue API der Methode: <classname>Zend_Validate_File_FilesSize($options)</classname> wobei $options
  129. die folgenden Schlüssel für das Array akzeptiert:
  130. <emphasis>min</emphasis> identisch mit $min,
  131. <emphasis>max</emphasis> identisch mit $max,
  132. <emphasis>bytestring</emphasis> identisch mit $bytestring
  133. </para></listitem>
  134. </itemizedlist>
  135. <para>
  136. Zustätzlich wurde die Signatur der <code>useByteString()</code> Methode geändert. Sie kann
  137. nur verwendet werden um zu testen ob die Prüfung ByteStrings in den erzeugten Meldungen
  138. verwendet oder ncht. Um den Wert dieses Flags zu setzen muß die
  139. <code>setUseByteString()</code> Methode verwendet werden.
  140. </para>
  141. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.filessize.example">
  142. <title>Änderungen für die FilesSize Prüfung von 1.6 zu 1.7</title>
  143. <programlisting role="php"><![CDATA[
  144. // Beispiel für 1.6
  145. $upload = new Zend_File_Transfer_Adapter_Http();
  146. $upload->addValidator('FilesSize',
  147. array(100, 10000, true));
  148. // Gleiches Beispiel für 1.7
  149. $upload = new Zend_File_Transfer_Adapter_Http();
  150. $upload->addValidator('FilesSize',
  151. false,
  152. array('min' => 100,
  153. 'max' => 10000,
  154. 'bytestring' => true));
  155. // Beispiel für 1.6
  156. $upload->useByteString(true); // Flag setzen
  157. // Gleiches Beispiel für 1.7
  158. $upload->setUseByteSting(true); // Flag setzen
  159. ]]>
  160. </programlisting>
  161. </example>
  162. </sect4>
  163. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.hash">
  164. <title>Prüfung: <emphasis>Hash</emphasis></title>
  165. <itemizedlist>
  166. <listitem><para>
  167. Alte API der Methode: <classname>Zend_Validate_File_Hash($hash, $algorithm)</classname>
  168. </para></listitem>
  169. <listitem><para>
  170. Neue API der Methode: <classname>Zend_Validate_File_Hash($options)</classname> wobei $options
  171. die folgenden Schlüssel für das Array akzeptiert:
  172. <emphasis>*</emphasis> identisch mit $hash und kann jeden anderen Schlüssel haben
  173. <emphasis>algorithm</emphasis> identisch mit $algorithm,
  174. </para></listitem>
  175. </itemizedlist>
  176. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.hash.example">
  177. <title>Änderungen für die Hash Prüfung von 1.6 zu 1.7</title>
  178. <programlisting role="php"><![CDATA[
  179. // Beispiel für 1.6
  180. $upload = new Zend_File_Transfer_Adapter_Http();
  181. $upload->addValidator('Hash',
  182. array('12345', 'md5'));
  183. // Gleiches Beispiel für 1.7
  184. $upload = new Zend_File_Transfer_Adapter_Http();
  185. $upload->addValidator('Hash',
  186. false,
  187. array('hash1' => '12345',
  188. 'algorithm' => 'md5'));
  189. ]]>
  190. </programlisting>
  191. </example>
  192. </sect4>
  193. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.imagesize">
  194. <title>Prüfung: <emphasis>ImageSize</emphasis></title>
  195. <itemizedlist>
  196. <listitem><para>
  197. Alte API der Methode: <classname>Zend_Validate_File_ImageSize($minwidth, $minheight, $maxwidth, $maxheight)</classname>
  198. </para></listitem>
  199. <listitem><para>
  200. Neue API der Methode: <classname>Zend_Validate_File_FilesSize($options)</classname> wobei $options
  201. die folgenden Schlüssel für das Array akzeptiert:
  202. <emphasis>minwidth</emphasis> identisch mit $minwidth,
  203. <emphasis>maxwidth</emphasis> identisch mit $maxwidth,
  204. <emphasis>minheight</emphasis> identisch mit $minheight,
  205. <emphasis>maxheight</emphasis> identisch mit $maxheight,
  206. </para></listitem>
  207. </itemizedlist>
  208. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.imagesize.example">
  209. <title>Änderungen für die ImageSize Prüfung von 1.6 zu 1.7</title>
  210. <programlisting role="php"><![CDATA[
  211. // Beispiel für 1.6
  212. $upload = new Zend_File_Transfer_Adapter_Http();
  213. $upload->addValidator('ImageSize',
  214. array(10, 10, 100, 100));
  215. // Gleiches Beispiel für 1.7
  216. $upload = new Zend_File_Transfer_Adapter_Http();
  217. $upload->addValidator('ImageSize',
  218. false,
  219. array('minwidth' => 10,
  220. 'minheight' => 10,
  221. 'maxwidth' => 100,
  222. 'maxheight' => 100));
  223. ]]>
  224. </programlisting>
  225. </example>
  226. </sect4>
  227. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.size">
  228. <title>Prüfung: <emphasis>Size</emphasis></title>
  229. <itemizedlist>
  230. <listitem><para>
  231. Alte API der Methode: <classname>Zend_Validate_File_Size($min, $max, $bytestring)</classname>
  232. </para></listitem>
  233. <listitem><para>
  234. Neue API der Methode: <classname>Zend_Validate_File_Size($options)</classname> wobei $options
  235. die folgenden Schlüssel für das Array akzeptiert:
  236. <emphasis>min</emphasis> identisch mit $min,
  237. <emphasis>max</emphasis> identisch mit $max,
  238. <emphasis>bytestring</emphasis> identisch mit $bytestring
  239. </para></listitem>
  240. </itemizedlist>
  241. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.size.example">
  242. <title>Änderungen für die Size Prüfung von 1.6 zu 1.7</title>
  243. <programlisting role="php"><![CDATA[
  244. // Beispiel für 1.6
  245. $upload = new Zend_File_Transfer_Adapter_Http();
  246. $upload->addValidator('Size',
  247. array(100, 10000, true));
  248. // Gleiches Beispiel für 1.7
  249. $upload = new Zend_File_Transfer_Adapter_Http();
  250. $upload->addValidator('Size',
  251. false,
  252. array('min' => 100,
  253. 'max' => 10000,
  254. 'bytestring' => true));
  255. ]]>
  256. </programlisting>
  257. </example>
  258. </sect4>
  259. </sect3>
  260. </sect2>
  261. <sect2 id="zend.file.transfer.migration.fromonesixonetoonesixtwo">
  262. <title>Migration von 1.6.1 zu 1.6.2 oder neuer</title>
  263. <sect3 id="zend.file.transfer.migration.fromonesixonetoonesixtwo.validators">
  264. <title>Änderungen bei der Verwendung von Prüfungen</title>
  265. <para>
  266. Wie von Benutzern festgestellt wurde, haben die Prüfungen von <classname>Zend_File_Transfer</classname>
  267. nicht auf die gleiche Art und Weise funktioniert wie standardmäßigen von <classname>Zend_Form</classname>.
  268. <classname>Zend_Form</classname> erlaubt die Verwendung eines <code>breakChainOnFailure</code> Parameters
  269. der die Prüfung für alle weitere Prüfer unterbricht wenn ein Prüffehler aufgetreten ist.
  270. </para>
  271. <para>
  272. Deshalb wurde dieser Parameter bei allen bestehenden Prüfungen von <classname>Zend_File_Transfer</classname>
  273. hinzugefügt.
  274. </para>
  275. <itemizedlist>
  276. <listitem><para>
  277. Alte API der Methode: <code>addValidator($validator, $options, $files)</code>.
  278. </para></listitem>
  279. <listitem><para>
  280. Neue API der Methode: <code>addValidator($validator, $breakChainOnFailure, $options, $files)</code>.
  281. </para></listitem>
  282. </itemizedlist>
  283. <para>
  284. Um also eigene Skripte auf die neue API zu migrieren, muß einfach ein <code>false</code> nach
  285. der Definition der gewünschten Prüfung hinzugefügt werden.
  286. </para>
  287. <example id="zend.file.transfer.migration.fromonesixonetoonesixtwo.example">
  288. <title>Wie man eigene Dateiprüfungen von 1.6.1 auf 1.6.2 ändert</title>
  289. <programlisting role="php"><![CDATA[
  290. // Beispiel für 1.6.1
  291. $upload = new Zend_File_Transfer_Adapter_Http();
  292. $upload->addValidator('FilesSize', array('1B', '100kB'));
  293. // Selbes Beispiel für 1.6.2 und neuer
  294. // Beachte das hinzugefügte boolsche false
  295. $upload = new Zend_File_Transfer_Adapter_Http();
  296. $upload->addValidator('FilesSize', false, array('1B', '100kB'));
  297. ]]>
  298. </programlisting>
  299. </example>
  300. </sect3>
  301. </sect2>
  302. </sect1>