PHP code example of haikara / verifier
1. Go to this page and download the library: Download haikara/verifier library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
haikara / verifier example snippets
$verifier = new Knp\Verifier\Verifier\Verifier();
// テストデータはすべてバリデーションを通る値
$post = [
'customer_name' => 'テスト',
'customer_code' => 'A0000001',
'category_id' => '1'
];
// 非空文字
$verifier->case(
'customer_name', // 項目名
$post['customer_name'] ?? '', // 検証する値
Rules::string()->nonEmptyString() // 検証条件
);
// 半角英数字、8文字
$verifier->case(
'customer_code',
$post['customer_code'] ?? '',
Rules::string()->alnum()->length(8)
);
// 半角数字、1以上
$verifier->case(
'category_id',
$post['category_id'] ?? null,
Rules::integer()->min(1)
);
// すべての項目が条件を満たせばtrueが返る
var_dump($verifier->verify());
$post = [
'year' => '2023'
'month' => '13',
];
// 1994以上の整数
$verifier->case(
'year',
$post['year'] ?? null,
Rules::integer()->min(1994)
);
// (int)2023が返る
$year = $verifier->getCase('year')->getValue();
// 1から12
$monthCase = $verifier->case(
'month',
$post['month'] ?? null,
Rules::integer()->range(1, 12)
);
// 条件を満たさないのでfalseが返る
$month = $monthCase->getValue();
// 空文字が弾かれる
Rules::string()->alnum();
// 半角英数字、もしくは空文を許可したい場合
Rules::string()->alnum()->allowEmptyString();
// こちらでも可
Rules::string()->alnum()->allow('');
// 1以上の整数、もしくはnull
Rules::integer()->min(1)->nullable();
// こちらでも可
Rules::integer()->min(1)->allow(null);
### カスタムバリデーション
`add`で任意の条件を追加する。
$verifier
->case(
'customer_name',
$post['customer_name'] ?? '',
Rules::string()->nonEmptyString()
)
->setMessage('名前を入力ください。');
// 半角英数字、8文字
$verifier
->case(
'customer_code',
$post['customer_code'] ?? '',
Rules::string()->alnum()->length(8)
)
->setmessage('顧客コードを半角英数字8文字で入力ください。');
// 半角数字、1以上
$verifier
->case(
'category_id',
$post['category_id'] ?? null,
Rules::integer()->min(1)
)
->setMessage('カテゴリを選択ください。');
if (!$verifier->verify()) {
// 検証で弾かれた項目のエラーメッセージの配列を取得
$error_messages = $verifier->getMessages();
}
// 基本。空文字も含む全ての文字列を許可する。
Rules::string();
// 空文字を弾く場合。
Rules::integer()->notEmptyString();
// 文字数を検証する。mb_strlenで判定しているのでマルチバイト文字も可。
Rules::string()->length(8);
// 部分一致
Rules::string()->contain('探したい文字列');
// 前方一致
Rules::string()->startsWith('探したい文字列');
// 後方一致
Rules::string()->startsWith('探したい文字列');
// 半角英数字のみ
Rules::string()->alnum();
// 半角英字のみ
Rules::string()->alpha();
// 半角数字のみ
Rules::string()->digit();
Rules::string()->email();
Rules::string()->uuid();
// UUIDv4形式のみ
Rules::string()->uuid(4);
Rules::string()->pregMatch('/^探したい文字列/');
// 最低値の指定
Rules::integer()->min(1);
// 最大値の指定
Rules::integer()->min(1);
// 最低値と最大値の範囲指定
Rules::integer()->range(1, 12);
// 桁数の指定
Rules::integer()->length(4); // 4桁の整数のみ
// 拡張子の指定
Rules::file()->ext('.jpg', '.png', '.gif');
// thumb_で始まる、JPEGかPNGかGIFのファイル名
Rules::file()
->startsWith('thumb_')
->ext('.jpg', '.png', '.gif');