kkiernan / validator
基本的表单验证类
Requires (Dev)
- phpspec/phpspec: ^2.2
This package is auto-updated.
Last update: 2024-09-16 07:05:21 UTC
README
这是一个基于Laravel的[更优越]验证工具的基本表单验证类。我写它是为了自己在简单的手动项目中使用,以及练习和学习。所以,是的。
安装
使用这个类最简单的方法是通过composer。我已经将它添加到Packagist中,主要是为了自己的方便。在已安装composer的终端中,运行以下命令
composer require kkiernan/validator
或者将包添加到你的composer.json文件中,并运行composer install。
Validator
用法
我基本上在这里复制了Laravel的内容。创建一个Kiernan\Validator
实例,传入你的数据和验证规则。使用管道分隔符添加多个规则到一个字段。
$validator = new Validator(
[
'name' => 'Kelly Kiernan',
'email' => 'kelly@kellykiernan.com',
'password' => 'secret',
'ip_address' => '192.168.0.1',
],
[
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'ip_address' => 'required|ip',
]
);
一旦创建了验证器实例,你可以调用Validator::fails()
或Validator::passes()
方法。例如
if ($validator->fails())
{
// Validation has failed
}
if ($validator->passes())
{
// Validation has passed
}
如果验证失败,你可以通过调用Validator::messages()
来检索错误信息。
print_r($validator->messages());
可用的验证规则
- 布尔值
- 电子邮件
- 浮点数
- 整数
- IP地址
- 必填
- URL
基于会话的消息
examples/full example展示了使用验证器以及包含的session helper的手动示例。Session类提供了一个简单的方式在会话中存储和检索消息。
用法
Session类使用单例模式提供给你可以调用的静态方法。在使用之前,你必须首先创建session实例。这只是为了确保PHP会话对类可用,这样你就不需要在所有的脚本中检查/启动会话。
Session::create();
Session类有以下方法可用
- Session::flash();
- Session::old();
- Session::has();
- Session::get();
- Session::clear();
Session::flash()
向会话添加数据。
Session::flash('success', 'We have received your application. Someone will be in touch shortly.');
Session::old()
检索旧会话数据。如果数据不存在,则返回null。你必须首先将旧数据闪存到会话中
if ($validator->fails())
{
Session::flash('old', $_POST);
Session::flash('errors', $validator->messages());
header('Location: index.php');
exit;
}
然后可以检索旧数据
<input type="text" name="name" value="<?php echo Session::old('name') ?>">
Session::has()
检查会话中是否存在键。以下示例使用Twitter Bootstrap样式显示一个成功警报。
<?php if (Session::has('success')): ?>
<div class="alert alert-success">
<?php echo Session::get('success'); ?>
</div>
<?php endif; ?>
Session::get()
如果存在,从会话中获取一个值。参见Session::has()
示例。
Session::clear()
清除会话数据。这在脚本底部非常有用,如果你不希望在多个页面加载之间保持会话错误、旧数据等。我希望将其集成到Session::flash()
方法中,但现在你必须手动调用clear。
Session::clear();