hashemi/valideto

一个简单的PHP数据验证包,具有丰富的预设规则和自定义规则。

dev-master 2020-09-16 16:37 UTC

This package is auto-updated.

Last update: 2024-09-22 03:07:19 UTC


README

一个简单的PHP数据验证包,具有丰富的预设规则和自定义规则。

安装

您可以从composer开始。进入您的终端,从项目根目录运行此命令。

composer require hashemi/valideto

用法

完成安装后,是时候检查如何轻松使用Valideto了。

<?php

use Hashemi\Valideto\Valideto;

$data = [
    'first_name' => "Hashemi",
    'last_name'  => "Rafsan" ,
    'email' => 'rafsan@xyz.com'
];

$validator = new Valideto($data, [
   'first_name' => ['required', 'string'],
   'last_name'  => ['required', 'string'],
   'email' => ['required', 'email']
]);

// Call "validate" for validating your data
$validator->validate();

if ($validator->success()) {
    // do something...
}

if ($validator->fails()) {
    // do something if fails
}

当您想要验证数据时,应该使用它。Valideto提供了许多默认的验证规则,但用户也可以自定义。如果您不想使用默认规则,也可以更改默认规则逻辑。Valideto提供了一个接口来更改默认的验证规则逻辑。

那么让我们看看您如何做,但建议不要更改它,一旦更改,您将承担结果责任

<?php

use Hashemi\Valideto\Rules\DefaultRulesInterface;
use Hashemi\Valideto\Valideto;

class OwnRulesClass implements DefaultRulesInterface
{
    public function setData(array $data): self {}
    public function isRequired(string $key): bool {}
    public function isNullable(string $key): bool {}
    public function isArray(string $key, bool $nullable = false): bool {}
    public function isAssoc(string $key, bool $nullable = false): bool {}
    public function isString(string $key, bool $nullable = false): bool {}
    public function isNumeric(string $key, bool $nullable = false): bool {}
    public function isDistinct(string $key, bool $nullable = false): bool {}
    public function isInteger(string $key, bool $nullable = false): bool {}
    public function isFloat(string $key, bool $nullable = false): bool {}
    public function isBoolean(string $key, bool $nullable = false): bool {}
    public function isSize(string $key, int $length, bool $nullable = false): bool {}
    public function isMax(string $key, int $value, bool $nullable = false): bool {}
    public function isMin(string $key, int $value, bool $nullable = false): bool {}
}

$data = [
    'first_name' => "Hashemi",
    'last_name'  => "Rafsan" ,
    'email' => 'rafsan@xyz.com'
];

$validator = new Valideto($data, [
   'first_name' => ['required', 'string'],
   'last_name'  => ['required', 'string'],
   'email' => ['required', 'email']
]);

// Call "validate" for validating your data
$validator->setRulesClass(new OwnRulesClass());

$validator->validate();

自己承担风险 :D

默认规则列表

required

required 应用于当您期望数据中有该值时

示例

$validator = new Valideto($data, [
   'first_name' => ['required'],
]);

max

max 应用于当您需要检查值是否超过最大值时

示例

$validator = new Valideto($data, [
   'age' => ['max:24'],
]);

min

min 应用于当您需要检查值是否至少有最小值时

示例

$validator = new Valideto($data, [
   'age' => ['min:24'],
]);

gt

gt 应用于当您需要检查值是否大于时

示例

$validator = new Valideto($data, [
   'age' => ['gt:24'],
]);

gte

gte 应用于当您需要检查值是否大于等于时

示例

$validator = new Valideto($data, [
   'age' => ['gte:24'],
]);

lt

lt 应用于当您需要检查值是否小于时

示例

$validator = new Valideto($data, [
   'age' => ['lt:24'],
]);

lte

lte 应用于当您需要检查值是否小于等于时

示例

$validator = new Valideto($data, [
   'age' => ['lte:24'],
]);

eq

eq 应用于当您需要检查值是否等于时

示例

$validator = new Valideto($data, [
   'age' => ['eq:integer|float|string|boolean:24'],
]);

nullable

nullable 应用于当值不是必需时

示例

$validator = new Valideto($data, [
   'age' => ['nullable'],
]);

distinct

distinct 应用于当您不想在数组中重复值时

示例

$validator = new Valideto($data, [
   'hobbies' => ['array', 'distinct'],
]);

date

date 应用于当您检查日期是否有效时

示例

$validator = new Valideto($data, [
   'start_date' => ['date'],
]);

date_format

date_format 应用于当您检查日期格式是否有效时

示例

$validator = new Valideto($data, [
   'start_date' => ['date_format:Y-m-d'],
]);

array

array 应用于当您检查数据是否为数组时

示例

$validator = new Valideto($data, [
   'start_date' => ['date_format:Y-m-d'],
]);

url

url 应用于当您检查数据是否为URL时

示例

$validator = new Valideto($data, [
   'website' => ['url'],
]);

ip

ip 应用于当您检查数据是否为IP时

示例

$validator = new Valideto($data, [
   'ip' => ['ip'],
]);

boolean

boolean 应用于当您检查数据是否为布尔值时

示例

$validator = new Valideto($data, [
   'is_enable' => ['boolean'],
]);

email

email 应用于当您检查数据是否为电子邮件时

示例

$validator = new Valideto($data, [
   'email' => ['email'],
]);

string

string 应用于当您检查数据是否为字符串时

示例

$validator = new Valideto($data, [
   'first_name' => ['string'],
]);

numeric

numeric 应用于当您检查数据是否为数值时

示例

$validator = new Valideto($data, [
   'id' => ['numeric'],
]);

integer

integer 应用于当您检查数据是否为整数时

示例

$validator = new Valideto($data, [
   'id' => ['integer'],
]);

float

float 应用于当您检查数据是否为浮点数时

示例

$validator = new Valideto($data, [
   'price' => ['float'],
]);

assoc

assoc 应用于当您检查数据是否为关联数组时

示例

$validator = new Valideto($data, [
   'hobbies' => ['array', 'assoc'],
]);

贡献

欢迎提交拉取请求。对于任何更改,请先打开一个问题来讨论您想进行什么更改。