mediadevs/validator

一个轻量级、可扩展的PHP验证包。

1.0.x-dev 2019-12-23 10:15 UTC

This package is auto-updated.

Last update: 2024-09-23 20:43:45 UTC


README

Total Downloads Latest Unstable Version Latest Stable Version Version Software License Code Intelligence Status Build Status Code Coverage Scrutinizer Code Quality Minimum PHP Version StyleCI

安装

通过Composer

$ composer require mediadevs/validator

通过GIT

HTTPS:
git clone https://github.com/mediadevs/validator.git

SSH:
git clone git@github.com:mediadevs/validator.git

用法

<?php 
Mediadevs\Validator\Validator::validate($clean, [
    'name'  => 'required|string|min_length:6',
    'email' => 'required|email|allowed_providers:hotmail.com,outlook.com,live.com,gmail.com,yourwebsite.tld',
], $language);
/** 
 * @var  $language - is optional and defaults to english 
 * @path './config/translations.php'
 */

验证过滤器

基本
日期
邮箱
主机
数字
字符串

创建自定义验证过滤器

创建自定义验证过滤器并不困难,我已经尽量使其尽可能简单和流畅。这个库也是按照每个过滤器作为一个独立类来结构化的,所有的类都会在服务提供者中注册。每个过滤器都可以有无限数量的别名(只要别名或标识符是唯一的)。

从库外部注册

<?php
Mediadevs\Validator\Services\FilterProvider::getInstance();

// Registering one of the test classes
Mediadevs\Validator\Services\FilterProvider::register([
    \Vendor\Package\Namespace\CustomFilters\MyFirstCustomFilter::class,
    \Vendor\Package\Namespace\CustomFilters\MySecondCustomFitler::class,
]);

从库内部注册

第一步

创建自己的验证或清理类。

  • 导航到 src/Filters/ 并创建一个名为 /Custom 的新文件夹

第二步

  • 创建一个新的类(可以从: /examples/create_custom_filters/option_b/FilterExample.php 中的基类示例中获取)

第三步

  • 输入您的自定义验证逻辑,确保它返回一个 boolean

第四步

  • 将您的过滤器添加到 /src/Services/FilterProvider.php 中的 $providers 数组中的新条目
<?php

namespace Mediadevs\Validator\Services;

class FilterProvider
{
    /**
     * The filters / providers for the Validator package
     * The classes are grouped by validation type and sorted alphabetically.
     *
     * @var array
     */
    private $providers = array(
        /*----[ Custom validation ]-----------------------------------------------------------------------------------*/
        \Vendor\Package\Namespace\CustomFilters\MyFirstCustomFilter::class,
        \Vendor\Package\Namespace\CustomFilters\MySecondCustomFilter::class,
    );
}

第五步

  • 当您创建一个验证过滤器时,非常重要的一点是您需要添加一个响应消息,这将提示用户。
  • 对于响应消息,我们使用版本 v1.0.0 的包 mediadevs/response-handler
  • 对于响应消息,您也可以按语言添加翻译。您可以查看文件以获取更多信息。这不是那么令人兴奋 =)

第六步

恭喜您,您已经创建了自己的过滤器!现在将其发布到世界上去使用它!!

待办事项

  • 新的验证过滤器
    • credit_card
    • iban
    • address (位置)
    • datetime格式/模式
  • 项目变更
    • 添加一个可以手动覆盖响应翻译的方法
    • 创建一个具有不同和轻量级方法的门面,用于替代验证
  • 翻译
    • 瑞典语翻译
    • 德语翻译
  • 通用
    • 使代码更易于在较旧版本的PHP中使用
    • 为多个库(Symphony、Laravel、Yii、CackePHP等)实现功能

灵感

这个库受到了一些其他库的很大启发,我只是想找到一个更简单、更有结构的验证方法来验证我的 $_POST[]。由于其他一些库/包的结构不是那么有结构,只是将所有过滤器存储在一个文件中,我决定自己构建。

特别感谢

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

测试

$ composer test

贡献

有关详细信息,请参阅CONTRIBUTINGCODE_OF_CONDUCT

安全性

如果您发现任何与安全相关的问题,请通过电子邮件contact@mediadevs.nl联系,而不是使用问题跟踪器。

鸣谢

许可证

麻省理工学院许可证(MIT)。更多信息请参阅许可证文件