Zend_File_Transfer-Migration.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15207 -->
  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: Rename</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. ]]></programlisting>
  58. </example>
  59. </sect4>
  60. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.count">
  61. <title>Prüfung: Count</title>
  62. <itemizedlist>
  63. <listitem><para>
  64. Alte API der Methode: <classname>Zend_Validate_File_Count($min, $max)</classname>
  65. </para></listitem>
  66. <listitem><para>
  67. Neue API der Methode: <classname>Zend_Validate_File_Count($options)</classname> wobei $options
  68. die folgenden Schlüssel für das Array akzeptiert:
  69. <emphasis>min</emphasis> identisch mit $min,
  70. <emphasis>max</emphasis> identisch mit $max,
  71. </para></listitem>
  72. </itemizedlist>
  73. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.count.example">
  74. <title>Änderungen für die Count Prüfung von 1.6 zu 1.7</title>
  75. <programlisting role="php"><![CDATA[
  76. // Beispiel für 1.6
  77. $upload = new Zend_File_Transfer_Adapter_Http();
  78. $upload->addValidator('Count',
  79. array(2, 3));
  80. // Gleiches Beispiel für 1.7
  81. $upload = new Zend_File_Transfer_Adapter_Http();
  82. $upload->addValidator('Count',
  83. false,
  84. array('min' => 2,
  85. 'max' => 3));
  86. ]]></programlisting>
  87. </example>
  88. </sect4>
  89. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.extension">
  90. <title>Prüfung: Extension</title>
  91. <itemizedlist>
  92. <listitem><para>
  93. Alte API der Methode: <classname>Zend_Validate_File_Extension($extension, $case)</classname>
  94. </para></listitem>
  95. <listitem><para>
  96. Neue API der Methode: <classname>Zend_Validate_File_Extension($options)</classname> wobei $options
  97. die folgenden Schlüssel für das Array akzeptiert:
  98. <emphasis>*</emphasis> identisch mit $extension und kann jeden anderen Schlüssel haben
  99. <emphasis>case</emphasis> identisch mit $case,
  100. </para></listitem>
  101. </itemizedlist>
  102. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.extension.example">
  103. <title>Änderungen für die Extension Prüfung von 1.6 zu 1.7</title>
  104. <programlisting role="php"><![CDATA[
  105. // Beispiel für 1.6
  106. $upload = new Zend_File_Transfer_Adapter_Http();
  107. $upload->addValidator('Extension',
  108. array('jpg,gif,bmp', true));
  109. // Gleiches Beispiel für 1.7
  110. $upload = new Zend_File_Transfer_Adapter_Http();
  111. $upload->addValidator('Extension',
  112. false,
  113. array('extension1' => 'jpg,gif,bmp',
  114. 'case' => true));
  115. ]]></programlisting>
  116. </example>
  117. </sect4>
  118. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.filessize">
  119. <title>Prüfung: FilesSize</title>
  120. <itemizedlist>
  121. <listitem><para>
  122. Alte API der Methode: <classname>Zend_Validate_File_FilesSize($min, $max, $bytestring)</classname>
  123. </para></listitem>
  124. <listitem><para>
  125. Neue API der Methode: <classname>Zend_Validate_File_FilesSize($options)</classname> wobei $options
  126. die folgenden Schlüssel für das Array akzeptiert:
  127. <emphasis>min</emphasis> identisch mit $min,
  128. <emphasis>max</emphasis> identisch mit $max,
  129. <emphasis>bytestring</emphasis> identisch mit $bytestring
  130. </para></listitem>
  131. </itemizedlist>
  132. <para>
  133. Zustätzlich wurde die Signatur der <code>useByteString()</code> Methode geändert. Sie kann
  134. nur verwendet werden um zu testen ob die Prüfung ByteStrings in den erzeugten Meldungen
  135. verwendet oder ncht. Um den Wert dieses Flags zu setzen muß die
  136. <code>setUseByteString()</code> Methode verwendet werden.
  137. </para>
  138. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.filessize.example">
  139. <title>Änderungen für die FilesSize Prüfung von 1.6 zu 1.7</title>
  140. <programlisting role="php"><![CDATA[
  141. // Beispiel für 1.6
  142. $upload = new Zend_File_Transfer_Adapter_Http();
  143. $upload->addValidator('FilesSize',
  144. array(100, 10000, true));
  145. // Gleiches Beispiel für 1.7
  146. $upload = new Zend_File_Transfer_Adapter_Http();
  147. $upload->addValidator('FilesSize',
  148. false,
  149. array('min' => 100,
  150. 'max' => 10000,
  151. 'bytestring' => true));
  152. // Beispiel für 1.6
  153. $upload->useByteString(true); // Flag setzen
  154. // Gleiches Beispiel für 1.7
  155. $upload->setUseByteSting(true); // Flag setzen
  156. ]]></programlisting>
  157. </example>
  158. </sect4>
  159. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.hash">
  160. <title>Prüfung: Hash</title>
  161. <itemizedlist>
  162. <listitem><para>
  163. Alte API der Methode: <classname>Zend_Validate_File_Hash($hash, $algorithm)</classname>
  164. </para></listitem>
  165. <listitem><para>
  166. Neue API der Methode: <classname>Zend_Validate_File_Hash($options)</classname> wobei $options
  167. die folgenden Schlüssel für das Array akzeptiert:
  168. <emphasis>*</emphasis> identisch mit $hash und kann jeden anderen Schlüssel haben
  169. <emphasis>algorithm</emphasis> identisch mit $algorithm,
  170. </para></listitem>
  171. </itemizedlist>
  172. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.hash.example">
  173. <title>Änderungen für die Hash Prüfung von 1.6 zu 1.7</title>
  174. <programlisting role="php"><![CDATA[
  175. // Beispiel für 1.6
  176. $upload = new Zend_File_Transfer_Adapter_Http();
  177. $upload->addValidator('Hash',
  178. array('12345', 'md5'));
  179. // Gleiches Beispiel für 1.7
  180. $upload = new Zend_File_Transfer_Adapter_Http();
  181. $upload->addValidator('Hash',
  182. false,
  183. array('hash1' => '12345',
  184. 'algorithm' => 'md5'));
  185. ]]></programlisting>
  186. </example>
  187. </sect4>
  188. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.imagesize">
  189. <title>Prüfung: ImageSize</title>
  190. <itemizedlist>
  191. <listitem><para>
  192. Alte API der Methode: <classname>Zend_Validate_File_ImageSize($minwidth, $minheight, $maxwidth, $maxheight)</classname>
  193. </para></listitem>
  194. <listitem><para>
  195. Neue API der Methode: <classname>Zend_Validate_File_FilesSize($options)</classname> wobei $options
  196. die folgenden Schlüssel für das Array akzeptiert:
  197. <emphasis>minwidth</emphasis> identisch mit $minwidth,
  198. <emphasis>maxwidth</emphasis> identisch mit $maxwidth,
  199. <emphasis>minheight</emphasis> identisch mit $minheight,
  200. <emphasis>maxheight</emphasis> identisch mit $maxheight,
  201. </para></listitem>
  202. </itemizedlist>
  203. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.imagesize.example">
  204. <title>Änderungen für die ImageSize Prüfung von 1.6 zu 1.7</title>
  205. <programlisting role="php"><![CDATA[
  206. // Beispiel für 1.6
  207. $upload = new Zend_File_Transfer_Adapter_Http();
  208. $upload->addValidator('ImageSize',
  209. array(10, 10, 100, 100));
  210. // Gleiches Beispiel für 1.7
  211. $upload = new Zend_File_Transfer_Adapter_Http();
  212. $upload->addValidator('ImageSize',
  213. false,
  214. array('minwidth' => 10,
  215. 'minheight' => 10,
  216. 'maxwidth' => 100,
  217. 'maxheight' => 100));
  218. ]]></programlisting>
  219. </example>
  220. </sect4>
  221. <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.size">
  222. <title>Prüfung: Size</title>
  223. <itemizedlist>
  224. <listitem><para>
  225. Alte API der Methode: <classname>Zend_Validate_File_Size($min, $max, $bytestring)</classname>
  226. </para></listitem>
  227. <listitem><para>
  228. Neue API der Methode: <classname>Zend_Validate_File_Size($options)</classname> wobei $options
  229. die folgenden Schlüssel für das Array akzeptiert:
  230. <emphasis>min</emphasis> identisch mit $min,
  231. <emphasis>max</emphasis> identisch mit $max,
  232. <emphasis>bytestring</emphasis> identisch mit $bytestring
  233. </para></listitem>
  234. </itemizedlist>
  235. <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.size.example">
  236. <title>Änderungen für die Size Prüfung von 1.6 zu 1.7</title>
  237. <programlisting role="php"><![CDATA[
  238. // Beispiel für 1.6
  239. $upload = new Zend_File_Transfer_Adapter_Http();
  240. $upload->addValidator('Size',
  241. array(100, 10000, true));
  242. // Gleiches Beispiel für 1.7
  243. $upload = new Zend_File_Transfer_Adapter_Http();
  244. $upload->addValidator('Size',
  245. false,
  246. array('min' => 100,
  247. 'max' => 10000,
  248. 'bytestring' => true));
  249. ]]></programlisting>
  250. </example>
  251. </sect4>
  252. </sect3>
  253. </sect2>
  254. <sect2 id="zend.file.transfer.migration.fromonesixonetoonesixtwo">
  255. <title>Migration von 1.6.1 zu 1.6.2 oder neuer</title>
  256. <sect3 id="zend.file.transfer.migration.fromonesixonetoonesixtwo.validators">
  257. <title>Änderungen bei der Verwendung von Prüfungen</title>
  258. <para>
  259. Wie von Benutzern festgestellt wurde, haben die Prüfungen von <classname>Zend_File_Transfer</classname>
  260. nicht auf die gleiche Art und Weise funktioniert wie standardmäßigen von <classname>Zend_Form</classname>.
  261. <classname>Zend_Form</classname> erlaubt die Verwendung eines <code>breakChainOnFailure</code> Parameters
  262. der die Prüfung für alle weitere Prüfer unterbricht wenn ein Prüffehler aufgetreten ist.
  263. </para>
  264. <para>
  265. Deshalb wurde dieser Parameter bei allen bestehenden Prüfungen von <classname>Zend_File_Transfer</classname>
  266. hinzugefügt.
  267. </para>
  268. <itemizedlist>
  269. <listitem><para>
  270. Alte API der Methode: <code>addValidator($validator, $options, $files)</code>.
  271. </para></listitem>
  272. <listitem><para>
  273. Neue API der Methode: <code>addValidator($validator, $breakChainOnFailure, $options, $files)</code>.
  274. </para></listitem>
  275. </itemizedlist>
  276. <para>
  277. Um also eigene Skripte auf die neue API zu migrieren, muß einfach ein <code>false</code> nach
  278. der Definition der gewünschten Prüfung hinzugefügt werden.
  279. </para>
  280. <example id="zend.file.transfer.migration.fromonesixonetoonesixtwo.example">
  281. <title>Wie man eigene Dateiprüfungen von 1.6.1 auf 1.6.2 ändert</title>
  282. <programlisting role="php"><![CDATA[
  283. // Beispiel für 1.6.1
  284. $upload = new Zend_File_Transfer_Adapter_Http();
  285. $upload->addValidator('FilesSize', array('1B', '100kB'));
  286. // Selbes Beispiel für 1.6.2 und neuer
  287. // Beachte das hinzugefügte boolsche false
  288. $upload = new Zend_File_Transfer_Adapter_Http();
  289. $upload->addValidator('FilesSize', false, array('1B', '100kB'));
  290. ]]></programlisting>
  291. </example>
  292. </sect3>
  293. </sect2>
  294. </sect1>