inkusu/validation

类似于DSL的验证库

v1.0.0 2019-03-25 05:38 UTC

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();