bozworks/bouncer.php

🖐️ Bouncer是一个库,允许您灵活、快速且易于使用地过滤和验证HTML表单。

v1.0.0 2021-06-20 17:28 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:49:37 UTC


README

Bouncer是一个库,允许您灵活、快速且易于使用地过滤和验证HTML表单。

示例 · 开放问题 · 报告错误

目录

功能

  • 👍 使用非常简单,且不需要任何依赖。
  • 🎭 可以同时验证整个表单,或者可选地也可以验证特定字段。
  • 🎯 您不需要分别检查每个字段的验证有效性。Bouncer会为您跟踪整个表单的有效性。
  • 🛠️ 它为每个验证方法预定义了错误消息,并且可以从选项中更改这些消息。
  • ✔️ 您可以为每个字段创建自定义验证和过滤方法。
  • 📋 您可以为每个字段定义自定义错误消息。
  • 📌 支持错误消息(值、参数、预定义的字段标签和规则标题)变量。
  • 📐 包含30多个不同的内置验证和过滤方法。
  • ♻️ 它具有自动添加通过$_POST$_GET请求提交的表单数据的特性。因此,您不需要逐个定义表单字段。
  • 💲 完全免费使用,且是开源的。

↑ 返回顶部

快速入门

Bouncer可以使用也可以不使用Composer。

使用Composer

使用Bouncer的首选方式是使用Composer。执行以下命令将此包作为项目依赖项安装

composer require bozworks/bouncer.php
<?php
  use Boz\Bouncer as Bouncer;
  //Load Composer's autoloader
  require 'vendor/autoload.php';
  new Bouncer();

不使用Composer

Bouncer没有依赖项。因此,您可以直接下载并将其包含到您的文件中,然后开始使用它

<?php
  require 'class.bouncer.php';
  use Boz\Bouncer as Bouncer;
  new Bouncer();

简单示例

在下面的示例中,我们将使用Bouncer基本验证用户的会话信息。

<?php
  require 'class.bouncer.php';
  use Boz\Bouncer as Bouncer;
  
  $bouncer = new Bouncer(array(
    'useremail' => 'john@example.tld',
    'password' => '12345',
    'expiry' => '3 day'
  ));
  
  $bouncer
  ->name('useremail')
  ->required()
  ->email()
  ->name('password')
  ->required()
  ->callback(function($password){ return ('12345' === $password); })
  ->name('expiry')
  ->required()
  ->minlength(5)
  ->endswith('day')
  ->validate(true);
  
  if($bouncer->get('valid') === 1) {
    openSession(
      $bouncer->get('value', 'useremail'),
      $bouncer->get('value', 'expiry')
    );
    echo '<div role="alert" class="msg success">Successfully Logged In</div>';
  } else {
    foreach($bouncer->get('errors') as $field => $errors) {
      foreach ($errors as $rule => $error) {
        echo '<div role="alert" class="msg error">' . $error . '</div>';
      }
    }
  }

您可以在示例文件夹中找到完整的指南示例。

↑ 返回顶部

许可证

Bouncer的代码在MIT许可证下发布,艺术和文档在创意共享许可证下发布。(MIT AND CC-BY-4.0)

↑ 返回顶部

发布说明

  • 根据字段自动打印错误消息。
  • 增加了一些改进和示例。

查看变更日志

↑ 返回顶部

未来发布计划

  • 支持多个规则。
  • 新增了"contains"和"notcontains"方法。

查看变更日志

↑ 返回顶部

常见问题

能否定义多个规则?

  • 是的,Bouncer能够处理多个规则。

能否定义多个自定义回调?

  • 是的,Bouncer能够处理多个回调。

能否从同一个验证规则中定义多个?

  • 不,目前它只能由相同的规则定义一次。计划在将来Bouncer将具备这项功能。

↑ 返回顶部

致谢

这个仓库受到了bouncer.js的启发。

获取由@cferdinandi开发的JavaScript版本。 Bouncer.js

↑ 返回顶部