crodas / validator
验证库
v0.2.2
2016-03-25 05:23 UTC
Requires
- crodas/cli: ~0.1
- crodas/file-util: >=0.1.7
- crodas/notoj: ^1.0
- crodas/watch-files: ~0.1
Requires (Dev)
- crodas/simple-view-engine: >=0.1.28
README
生成静态验证器,以在PHP中验证数据。静态表示规则在离线时定义,然后库生成代码以执行验证。我们不进行任何运行时检查。
如果您需要动态定义验证规则,例如您有一个CMS或其他类似的东西,那么这个库可能用处不大(除非您手动调用crodas\Validator\Builder
),在这种情况下,我建议您查看@Respect的验证库,该库是此库的灵感来源。
如何安装
安装此包的最简单方法是使用Composer
composer "crodas/validator":\*
如何使用它
我们的对象
所有验证规则都使用注解定义,它应该是这样的
/** @Validate */ class User { /** @Between([18, 99], "Invalid age range, it should be between 18-99") */ protected $age; /** * @NoWhitespace("Spaces are not allowed") * @MinLength([5], "{$value} is too short") * @MaxLength([10], "{$value} is too long") */ public $username; }
简单方法
您只需调用crodas/Validator/validate
函数,它将处理其他所有事情。
$user = new User; $user->age = 17; $user->username = "invalid username"; if (!crodas\Validator\validate($user, $errors)) { echo "<h1>There has been an error</h1>"; foreach ($errors as $property => $error) { echo "...\n"; } exit; }
困难方法
您还可以通过读取给定目录中的PHP文件来生成验证对象。此项目公开了其引擎和编译,因此这可以非常容易地完成。您必须做的第一件事是创建验证器对象。
require "vendor/autoload.php"; $val = new crodas\Validator\Init("/classes/", "/tmp/foo.php");
验证器对象将首先在/classes/
及其子目录中查找定义的类。然后它将加载带有@Validate注解的类。
要验证一个对象,您必须执行如下操作。
$errors = $val->validate(new User); if (!empty($errors)) { foreach ($errors as $field => $exception) { echo "{$field} is not valid ( {$exception} )\n"; } }