Các Validator
Zend Framwork đã xây dựng sẵn các Validator gồm:
Barcode | Kiểm tra là Barcode, hỗ trọ các adapter barcode chuẩn như: CODABAR, CODE128 ... |
Between | Giá trị trong khoảng min, max options: ['min' => 0, 'max' => 10] |
Callback | Goi hàm callback kiểm tra options: [ 'callback' => [MyClass::class, 'myMethod'], 'callbackOptions' => $options, ] |
CreditCard | Kiểm tra là số CreditCard, option: [CreditCard::AMERICAN_EXPRESS, CreditCard::VISA ] |
Date | Kiểm tra là ngày hợp lệ option ['format' => 'DMY'] |
RecordExists NoRecordExists (database) | Bản ghi có chứa, không chứa trong DB |
Digits | Kiểm tra là số |
EmailAddress | Kiểm tra là địa chỉ email |
GreaterThan | Giá trị lớn hơn thiết lập option ['min' => 10] |
Hex | Chuỗi chỉ chứa ký tự hex |
Hostname | Kiểm tra là Hostname |
Iban | Kiểm tra là số tài khoản ngân hàng |
Identical | Kiểm tra Identical |
InArray | Giá trị trong mảng, option [ 'haystack' => ['value1', 'value2',...'valueN'], ] |
Ip | Kiểm tra là địa chỉ IP |
Isbn | Kiểm tra là giá trị ISBN-10, ISBN-13 |
IsInstanceOf | |
LessThan | Giá trị nhỏ hơn, option ['max' => 10] |
NotEmpty | Kiểm tra dữ liệu không rỗng option ['integer', 'zero'] |
Regex | Kiểm tra theo biểu thức chính quy option: ['pattern' => '/^Test/'] |
Sitemap | |
Step | |
StringLength | Kiểm tra chiều dài option ['max' => 6] |
Timezone | |
Uri | |
Uuid | |
Các Validator về File | Exist, Extention, Size ... |
Tìm hiểu một số Validator hay dùng
Zend\I18n\Validator\Alnum
Kiểm tra dữ liệu chỉ có chữ và số
$validator = new Zend\I18n\Validator\Alnum();
if ($validator->isValid('Abcd12')) {
// value contains only allowed chars
} else {
// false
}
Zend\I18n\Validator\Alpha
Dữ liệu chỉ được phép là các chữ cái
$validator = new Zend\I18n\Validator\Alpha();
if ($validator->isValid('Abcd')) {
// value contains only allowed chars
} else {
// false
}
Zend\Validator\Between
Dữ liệu trong khoản min và max (dạng số)
$valid = new Zend\Validator\Between(array('min' => 0, 'max' => 10)); $value = 10; $result = $valid->isValid($value);
Zend\Validator\Callback
Dữ liệu được xác thực bởi hàm tự định nghĩa
$valid = new Zend\Validator\Callback('myMethod');
if ($valid->isValid($input)) {
// input appears to be valid
} else {
// input is invalid
}
Zend\Validator\Date
Kiểm tra ngày tháng phù hợp
$validator = new Zend\Validator\Date(); $validator->isValid('2000-10-10'); // returns true $validator->isValid('10.10.2000'); // returns false
Zend\Validator\Db\RecordExists
Kiểm tra dòng dữ liệu đã có trong Database. Nếu có trả về TRUE.
$validator = new Zend\Validator\Db\RecordExists( array( 'table' => 'users', 'field' => 'emailaddress', 'adapter' => $dbAdapter ) ); if ($validator->isValid($emailaddress)) { // email address appears to be valid } else { // email address is invalid; print the reasons foreach ($validator->getMessages() as $message) { echo "$message\n"; } }
Zend\Validator\Db\NoRecordExists
Kiểm tra dữ liệu không có trong Database
$validator = new Zend\Validator\Db\NoRecordExists( array( 'table' => 'users', 'field' => 'username', 'adapter' => $dbAdapter ) ); if ($validator->isValid($username)) { // username appears to be valid } else { // username is invalid; print the reason $messages = $validator->getMessages(); foreach ($messages as $message) { echo "$message\n"; } }
Extension
Zend\Validator\File\Extension kiểm tra phần mở rộng của file có trong danh sách cho phép hay không.
// Cho phép php, exe
$validator = new \Zend\Validator\File\Extension('php,exe');
// ...or with array notation
$validator = new \Zend\Validator\File\Extension(array('php', 'exe'));
// Test with case-sensitivity on
$validator = new \Zend\Validator\File\Extension(array('php', 'exe'), true);
// Perform validation
if ($validator->isValid('./myfile.php')) {
// file is valid
}
ImageSize
Kiểm tra kích thước ảnh
// Is image size between 320x200 (min) and 640x480 (max)? $validator = new \Zend\Validator\File\ImageSize(320, 200, 640, 480);
IsCompressed
Kiểm tra xem có đúng là file nén
$validator = new \Zend\Validator\File\IsCompressed();
if ($validator->isValid('./myfile.zip')) {
// file is valid
}
IsImage
Kiểm tra xem có đúng là file ảnh
$validator = new \Zend\Validator\File\IsImage();
if ($validator->isValid('./myfile.jpg')) {
// file is valid
}
NotExists
Kiểm tra file là không tồn tại
// Only allow files that do not exist in ~either~ directories
$validator = new \Zend\Validator\File\NotExists('/tmp,/var/tmp');
// ...or with array notation
$validator = new \Zend\Validator\File\NotExists(array('/tmp', '/var/tmp'));
// Perform validation
if ($validator->isValid('/home/myfile.txt')) {
// file is valid
}
Size
Kiểm tra kích thước file phù hợp
// Limit the file size to 40000 bytes $validator = new \Zend\Validator\File\Size(40000); // Limit the file size to between 10kB and 4MB $validator = new \Zend\Validator\File\Size(array( 'min' => '10kB', 'max' => '4MB' )); // Perform validation with file path if ($validator->isValid('./myfile.txt')) { // file is valid }
UploadFile
Kiểm tra file được upload thông qua POST tồn tại
use Zend\Http\PhpEnvironment\Request; $request = new Request(); $files = $request->getFiles(); // i.e. $files['my-upload']['error'] == 0 $validator = new \Zend\Validator\File\UploadFile(); if ($validator->isValid($files['my-upload'])) { // file is valid }
GreaterThan
Kiểm tra số phải lớn hơn một giá trị nào đó
$valid = new Zend\Validator\GreaterThan(array('min' => 10)); $value = 8; $return = $valid->isValid($value);
InArray
Kiểm tra có trong mảng dữ liệu
$validator = new Zend\Validator\InArray(array('haystack' => array('value1', 'value2',...'valueN'))); if ($validator->isValid('value')) { // value found } else { // no value found }
IsFloat
Kiểm tra là số thực float
$validator = new Zend\I18n\Validator\IsFloat();
$validator->isValid(1234.5); // returns true
IsInt
Kiểm tra là số nguyên
$validator = new Zend\I18n\Validator\IsInt();
$validator->isValid(1234); // returns true
LessThan
Kiểm tra số phải nhỏ hơn giá trị cho trước
$valid = new Zend\Validator\LessThan(array('max' => 10)); $value = 12; $return = $valid->isValid($value);
StringLength
Chuỗi có độ dài phù hợp
$validator = new Zend\Validator\StringLength(array('min' => 3, 'max' => 30)); $validator->isValid("."); // returns false
Uri
Kiểm tra các URL là phù hợp
$validator = new Zend\Validator\Uri(); $uri = ''; if ($validator->isValid($uri)) { // $uri was valid } else { // false. You can use $validator->getMessages() to retrieve error messages }