bozworks / bouncer.php
🖐️ Bouncer是一个库,允许您灵活、快速且易于使用地过滤和验证HTML表单。
v1.0.0
2021-06-20 17:28 UTC
Requires
- php: >=5.5.0
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