Table of Contents
When upgrading from a previous release to Zend Framework 1.10 or higher you should note the following migration notes.
Before release 1.10 the MimeType
validator used a wrong
naming. For consistency the following constants have been changed:
Table B.1. Changed Validation Messages
Old | New | Value | |
---|---|---|---|
TOO_MUCH |
TOO_MANY |
Too many files, maximum '%max%' are allowed but '%count%' are given | |
TOO_LESS |
TOO_FEW |
Too few files, minimum '%min%' are expected but '%count%' are given |
When you are translating these messages within your code then use the new constants. As benefit you don't need to translate the original string anymore to get a correct spelling.
For security reasons we had to turn off the default fallback mechanism of the
MimeType
, ExcludeMimeType
,
IsCompressed
and IsImage
validators.
This means, that if the fileInfo or
magicMime extensions can not be found, the validation will
always fail.
If you are in need of validation by using the HTTP fields which
are provided by the user then you can turn on this feature by using the
enableHeaderCheck()
method.
![]() |
Security hint |
---|---|
You should note that relying on the HTTP fields, which are provided by your user, is a security risk. They can easily be changed and could allow your user to provide a malcious file. |
Example B.1. Allow the usage of the HTTP fields
// at initiation $valid = new Zend_File_Transfer_Adapter_Http(array('headerCheck' => true); // or afterwards $valid->enableHeaderCheck();
When setting returning a error from within a self written validator you have to
call the _error()
method. Before Zend Framework 1.10 you
were able to call this method without giving a parameter. It used then the first
found message template.
This behaviour is problematic when you have validators with more than one different message to be returned. Also when you extend an existing validator you can get unexpected results. This could lead to the problem that your user get not the message you expected.
My_Validator extends Zend_Validate_Abstract { public isValid($value) { ... $this->_error(); // unexpected results between different OS ... } }
To prevent this problem the _error()
method is no longer
allowed to be called without giving a parameter.
My_Validator extends Zend_Validate_Abstract { public isValid($value) { ... $this->_error(self::MY_ERROR); // defined error, no unexpected results ... } }
Before Zend Framework 1.10 2 identical messages were thrown within the date
validator. These were NOT_YYYY_MM_DD
and
FALSEFORMAT
. As of Zend Framework 1.10 only the
FALSEFORMAT
message will be returned when the given date
does not match the set format.
Before Zend Framework 1.10 the messages within the 2 barcode adapters, the Alpha and the Alnum validator were identical. This introduced problems when using custom messages, translations or multiple instances of these validators.
As with Zend Framework 1.10 the values of the constants were changed to be unique. When you used the constants as proposed in the manual there is no change for you. But when you used the content of the constants in your code then you will have to change them. The following table shows you the changed values:
Table B.2. Available Validation Messages
Validator | Constant | Value |
---|---|---|
Alnum | STRING_EMPTY |
alnumStringEmpty |
Alpha | STRING_EMPTY |
alphaStringEmpty |
Barcode_Ean13 | INVALID |
ean13Invalid |
Barcode_Ean13 | INVALID_LENGTH |
ean13InvalidLength |
Barcode_UpcA | INVALID |
upcaInvalid |
Barcode_UpcA | INVALID_LENGTH |
upcaInvalidLength |
Digits | STRING_EMPTY |
digitsStringEmpty |