Migrer à partir des versions précédentes
L'API de Zend_File_Transfer a changé au cours du temps. Si vous
avez commencé à utiliser Zend_File_Transfer et ses sous-composants
avec les versions précédentes, suivez les lignes directrices ci-dessous pour migrer vos
scripts et ainsi utiliser la nouvelle API.
Migrer de la version 1.6 vers 1.7 ou plus récent
Changements quand vous utilisez des filtres ou des validateurs
Certaines remarques des utilisateurs indiquaient que les validateurs de
Zend_File_Transfer ne fonctionnaient pas correctement avec
Zend_Config dû au fait qu'ils n'utilisait pas de tableaux
nommés.
De plus, tous les filtres et validateurs de
Zend_File_Transfer ont été réécrits. Même si les anciennes
signatures continuent à fonctionner, elles ont été marqués comme dépréciées et
émettent une notice PHP vous informant de faire le changement.
La liste suivante vous montre les changements à réaliser pour une utilisation
appropriée des paramètres.
Filtre Rename
Ancienne API : Zend_Filter_File_Rename($oldfile,
$newfile, $overwrite)
Nouvelle API :
Zend_Filter_File_Rename($options) où
$options accepte un tableau avec les clés suivantes :
source est équivalent à $oldfile,
target est équivalent à $newfile,
overwrite est équivalent à
$overwrite.
Changer le filtre rename entre 1.6 et 1.7
addFilter('Rename',
array('/path/to/oldfile', '/path/to/newfile', true));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addFilter('Rename',
array('source' => '/path/to/oldfile',
'target' => '/path/to/newfile',
'overwrite' => true));
]]>
Validateur Count
Ancienne API : Zend_Validate_File_Count($min,
$max)
Nouvelle API :
Zend_Validate_File_Count($options) où
$options accepte un tableau avec les clés suivantes :
min est équivalent à $min,
max est équivalent à $max.
Changer le validateur count entre 1.6 et 1.7
addValidator('Count',
array(2, 3));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Count',
false,
array('min' => 2,
'max' => 3));
]]>
Validateur Extension
Ancienne API : Zend_Validate_File_Extension($extension,
$case)
Nouvelle API :
Zend_Validate_File_Extension($options) où
$options accepte un tableau avec les clés suivantes :
* est équivalent à $extension et peut
avoir tout autre clé, case est équivalent à
$case.
Changer le validateur extension entre 1.6 et 1.7
addValidator('Extension',
array('jpg,gif,bmp', true));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Extension',
false,
array('extension1' => 'jpg,gif,bmp',
'case' => true));
]]>
Validateur FilesSize
Ancienne API : Zend_Validate_File_FilesSize($min, $max,
$bytestring)
Nouvelle API :
Zend_Validate_File_FilesSize($options) où
$options accepte un tableau avec les clés suivantes :
min est équivalent à $min,
max est équivalent à $max,
bytestring est équivalent à
$bytestring.
De plus la signature de la méthode useByteString() a changé.
Elle peut être seulement utilisée pour tester si le validateur prévoie
d'utiliser les chaînes lisibles ou la valeur brute dans les messages générées.
Pour paramétrer la valeur de cette option, utilisez la méthode
setUseByteString().
Changer le validateur filessize entre 1.6 et 1.7
addValidator('FilesSize',
array(100, 10000, true));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('FilesSize',
false,
array('min' => 100,
'max' => 10000,
'bytestring' => true));
// Exemple pour 1.6
$upload->useByteString(true); // set flag
// Même exemple pour 1.7
$upload->setUseByteSting(true); // set flag
]]>
Validateur Hash
Ancienne API : Zend_Validate_File_Hash($hash,
$algorithm)
Nouvelle API :
Zend_Validate_File_Hash($options) où
$options accepte un tableau avec les clés suivantes :
* est équivalent à $hash et peut avoir
tout autre clé, algorithm est équivalent à
$algorithm.
Changer le validateur hash entre 1.6 et 1.7
addValidator('Hash',
array('12345', 'md5'));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Hash',
false,
array('hash1' => '12345',
'algorithm' => 'md5'));
]]>
Validateur ImageSize
Ancienne API : Zend_Validate_File_ImageSize($minwidth,
$minheight, $maxwidth, $maxheight)
Nouvelle API :
Zend_Validate_File_FilesSize($options) où
$options accepte un tableau avec les clés suivantes :
minwidth est équivalent à $minwidth,
maxwidth est équivalent à $maxwidth,
minheight est équivalent à $minheight,
maxheight est équivalent à
$maxheight.
Changer le validateur imagesize entre 1.6 et 1.7
addValidator('ImageSize',
array(10, 10, 100, 100));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('ImageSize',
false,
array('minwidth' => 10,
'minheight' => 10,
'maxwidth' => 100,
'maxheight' => 100));
]]>
Validateur Size
Ancienne API : Zend_Validate_File_Size($min, $max,
$bytestring)
Nouvelle API :
Zend_Validate_File_Size($options) où
$options accepte un tableau avec les clés suivantes :
min est équivalent à $min,
max est équivalent à $max,
bytestring est équivalent à
$bytestring
Changer le validateur size entre 1.6 et 1.7
addValidator('Size',
array(100, 10000, true));
// Même exemple pour 1.7
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Size',
false,
array('min' => 100,
'max' => 10000,
'bytestring' => true));
]]>
Migrer de la version 1.6.1 vers 1.6.2 ou plus récent
Changements quand vous utilisez des validateurs
Certaines remarques des utilisateurs indiquaient que les validateurs de
Zend_File_Transfer ne fonctionnaient pas comme ceux par
défaut fournis avec Zend_Form.
Zend_Form permet par exemple l'utilisation du paramètre
breakChainOnFailure qui stoppe la validation de tous les validateurs
suivants dès qu'une erreur de validation apparaît.
Nous avons donc ajouter ce paramètre à tous les validateurs existants pour
Zend_File_Transfer.
Ancienne API : addValidator($validator, $options,
$files).
Nouvelle API : addValidator($validator, $breakChainOnFailure,
$options, $files).
Pour migrer vos scripts vers la nouvelle API, ajoutez simplement un a
FALSE après voir défini le validateur souhaité.
Changer les validateurs de fichiers de 1.6.1 vers 1.6.2
addValidator('FilesSize', array('1B', '100kB'));
// Même exemple pour 1.6.2 et plus récent
// Notez l'ajout du booléen false
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('FilesSize', false, array('1B', '100kB'));
]]>