Zend_File_Transfer-Migration.xml 17 KB

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