Liên hệ
zend framework

Các Validator trong Zend Framework

Danh sách các Validator mà ZF xây dựng sẵn để kiểm tra phù hợp dữ liệu, rất nhiều Validator tiện dụng như Alpha, Digits, NotEmpty, StringLength ...

Các Validator

Zend Framwork đã xây dựng sẵn các Validator gồm:

BarcodeKiểm tra là Barcode, hỗ trọ các adapter barcode chuẩn như: CODABAR, CODE128 ...
BetweenGiá trị trong khoảng min, max options: ['min' => 0, 'max' => 10]
CallbackGoi hàm callback kiểm tra options: [ 'callback' => [MyClass::class, 'myMethod'], 'callbackOptions' => $options, ]
CreditCardKiểm tra là số CreditCard, option: [CreditCard::AMERICAN_EXPRESS, CreditCard::VISA ]
DateKiể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
DigitsKiểm tra là số
EmailAddressKiểm tra là địa chỉ email
GreaterThanGiá trị lớn hơn thiết lập option ['min' => 10]
HexChuỗi chỉ chứa ký tự hex
HostnameKiểm tra là Hostname
IbanKiểm tra là số tài khoản ngân hàng
IdenticalKiểm tra Identical
InArrayGiá trị trong mảng, option [ 'haystack' => ['value1', 'value2',...'valueN'], ]
IpKiểm tra là địa chỉ IP
IsbnKiểm tra là giá trị ISBN-10, ISBN-13
IsInstanceOf
LessThanGiá trị nhỏ hơn, option ['max' => 10]
NotEmptyKiểm tra dữ liệu không rỗng option ['integer', 'zero']
RegexKiểm tra theo biểu thức chính quy option: ['pattern' => '/^Test/']
Sitemap
Step
StringLengthKiểm tra chiều dài option ['max' => 6]
Timezone
Uri
Uuid
Các Validator về FileExist, 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
}

 

Vui lòng đăng ký ủng hộ kênh