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
}

 

Đăng ký theo dõi ủng hộ kênh