lmcmi/validators

一个简单易用的验证器,可在任何项目中使用

3.2.3 2024-08-15 14:45 UTC

This package is auto-updated.

Last update: 2024-09-15 15:04:11 UTC


README

简介

Validator包是一个多功能的PHP验证库,它可以轻松地执行强大的数据验证。无论是需要验证简单的字符串还是复杂嵌套结构,此包都提供了一种灵活直观的解决方案。

索引

  1. 安装
  2. 快速开始
  3. 自定义
  4. 贡献
  5. 结论

安装

使用Composer安装Validator包

composer require lmcmi/validators

快速开始

标准验证

对于简单的验证,直接使用Validator

<?php

require_once __DIR__ . "/vendor/autoload.php";

$validator = new \Validators\Validator;
$result = $validator->string()->maxLength(10)->required()->validate('this is a test');

if($result->failed()){
    $result->throwOnFirst(); // Throws an exception for the first error message
}

使用规则进行验证

对于更复杂的情况,利用嵌套结构的规则

$values = [
    'field_1' => [
        "a" => "string",
        "b" => "should_be_int",
        "c" => []
    ],
    "field_2" => '{"json": "valid"}'
];

$rules = [
    "field_1" => "array|required",
    "field_1.a" => "string|required|lengthBetween:1,2",
    "field_1.b" => "int|between:1,2",
    "field_1.c" => "array",
    "field_2" => "json",
];

$result = Validator::rules($rules)->validade($values);

$result->failedOnField("teste.c"); // Returns false
$result->failed(); // Returns true
$result->throwOnFirstError(); // Throws an exception with the first error message
$result->failedOnRule('string'); // Returns true
$result->getErrorsMessages(); // Returns all error messages if they exist

自定义

通过自定义处理器和消息来定制Validator包以满足您的需求。

自定义处理器

创建自定义验证处理器以定制验证过程

namespace My\Namespace;

class Required implements \Validators\Contracts\ValidatorHandler
{
    public function handle($item): bool
    {
        return isset($item);
    }
}

为所有自定义处理器设置命名空间

$validator->setNamespaceHandler(My\Namespace::class);

自定义消息

定制验证错误消息以增加个性化

namespace My\Message\Namespace;

class Message implements \Validators\Contracts\MessagesRegistration
{
    public function register(): array
    {
        return [
            'required' => ':field is required!'
        ];
    }
}

集成您的自定义消息类

$validator->registerMessages(new \My\Message\Namespace\Message()); 

贡献

通过在https://github.com/lcmialichi/validators上提交问题或拉取请求来为Validator包的改进做出贡献。

结论

使用Validator包,您在PHP项目中确保数据完整性和可靠性的强大工具。深入研究文档,尝试提供的示例,轻松增强您的验证能力。