inkusu / validation
类似于DSL的验证库
v1.0.0
2019-03-25 05:38 UTC
Requires
- php: >=5.3
Requires (Dev)
- apigen/apigen: 4.0.0-RC4
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-15 19:23:44 UTC
README
验证库
提供通用的验证规则和用于管理这些规则的功能。
示例
基本
#!php
<?php
use JP\Grampus\Validation\Validator;
//ダミーデータ
$q = array(
'name' => 'taro',
'password' => 'hogehoge',
'email' => 'hogehoge@taro.co.jp'
);
//検証クラスの初期化
$validator = Validator::make();
//nameを必須項目・長さを255以下に設定
$validator->set($q['name'], 'お名前')->required()->length('>', 255, 'は255文字以内で入力してください。')->end();
//パスワードを必須に設定
$validator->set($q['password'], 'パスワード')->required()->end();
//メールアドレスの書式を確認
$validator->set($q['email'], 'メールアドレス')->email()->required()->end();
//設定したルールに基づき検証を開始
$validator->valid();
//検証ルールに失敗したか
if($validator->fails() == true){
//失敗したならエラーメッセージを取得
$err = $validator->getErr();
}
类似DSL
#!php
<?php
use JP\Grampus\Validation\Validator;
//ダミーデータ
$q = array(
'name' => 'taro',
'password' => 'hogehoge',
'email' => 'hogehoge@taro.co.jp'
);
$isFails = Validator::make()
->set($q['name'], 'お名前')
->required()
->length('>', 255, 'は255文字以内で入力してください。')
->end()
->set($q['password'], 'パスワード')
->required()
->end()
>set($q['email'], 'メールアドレス')
->email()
->required()
->end();
->valid()
->fails();
required($message = '没有输入。')
验证值或设置是否存在。如果是null或字符串,则检查是否为空字符串;如果是数组,则检查是否有元素。
#!php
<?php
use JP\Grampus\Validation\Validator;
//ダミーデータ
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')->required()->end();
//エラーメッセージ 会社名が入力されていません。
numeric($message = '的值不是数值。')
验证值为数值(十六进制, 十进制, 八进制, 二进制, 浮点数, 整数)
#!php
<?php
use JP\Grampus\Validation\Validator;
//ダミーデータ
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> numeric()->end();
digit($message = '的值不是数值。')
验证值为数值(十进制)
#!php
<?php
use JP\Grampus\Validation\Validator;
//ダミーデータ
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> degit()->end();
alpha($message = '的值不是半角英文字符。')
验证值为字母
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> alpha()->end();
alphaNumeric($message = '的值不是半角英数字。')
验证值为字母和数字
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> alphaNumeric()->end();
tel($message = '的格式不正确。')
验证电话号码
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> tel()->end();
email($message = '的格式不正确。')
验证电子邮件地址
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> email()->end();
ip($message = '的值不是有效的IP。')
验证IP地址
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> ip()->end();
url($message = '的值不是有效的URL。')
验证URL
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> ip()->end();
dateFormat($message = '日期格式不正确。')
验证值为日期
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> dateFormat()->end();
same($target, $message = '不相同。')
验证指定的值是否相同。
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> same()->end();
zenkaku($message = '包含全角文字。')
验证值为全角文字
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> zenkaku()->end();
hiragana($message = '包含全角平假名以外。')
验证值为全角平假名
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> hiragana()->end();
length($operator, $len, $message = '', $encoding = 'UTF-8')
验证值的长度
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> hiragana()->end();
tokenIOS($message = 'iOS的设备令牌不正确。')
设备令牌检查(IOS)
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> tokenIOS()->end();
tokenAndroid($message = 'Android的设备令牌不正确。')
设备令牌检查 (Android)
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> tokenAndroid()->end();
custom($callback, $message)
也可以定义并注册自定义函数。
使用匿名函数注册
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> custom(function(){
return true;
}, 'カスタムメッセージ')->end();
使用命名函数注册
#!php
<?php
use JP\Grampus\Validation\Validator;
$q = array(
'name' => 'taro株式会社',
);
$custom = function($v){
return true;
}
$validator = Validator::make();
$validator->set($q['name'], '会社名')-> custom($custom, 'カスタムメッセージ')->end();