progsmile / request-validator
简单的 PHP 请求验证器
2.0.0
2020-05-24 06:22 UTC
Requires
- php: >=5.4
- ext-json: *
- respect/validation: 1.0.*
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-24 17:11:17 UTC
README
轻松实现应用验证(受 Laravel 验证启发)
页面索引
建议链接
快速开始 🚀
<?php $rules = [ # firstname and lastname must be present # they should be alphanumeric # atleast 2 characters 'firstname, lastname' => 'required|alpha|min:2', # max until 18 characters only 'lastname' => 'max:18', # must be an email format # adding custom rule 'email' => ['email', MyCustomRule::class], # must be numeric 'id' => 'numeric', 'age' => ['min:16', 'numeric'], 'info[country]' => ['required', 'alpha'], # roll[0] or roll[1] values must be in the middle 1 to 100 'roll[0], roll[1]' => 'numeric|between:1, 100', # the format must be 'm-Y.d H:i' 'date' => 'dateFormat:(m-Y.d H:i)', # it must be an image format under $_FILES global variable 'profileImg' => 'image', # the provided phone number should follow the format # correct: +38(123)456-12-34 # wrong: +38(123)56-123-56 # wrong: +39(123)456-12-34 'phoneMask' => 'phoneMask:(+38(###)###-##-##)', 'randNum' => 'between:1, 10|numeric', # the value must be an IP Format 'ip' => 'ip', 'password' => 'required|min:6', # the value from a key 'password' must be equal to 'password_repeat' value 'password_repeat' => 'same:password', # it must be a json format 'json' => 'json', 'site' => 'url', # cash10 or cash25 must only have these # 1 or 2 or 5 or 10 or 20 or 50 'cash10, cash25' => 'in:1, 2, 5, 10, 20, 50', # the value must not have 13 or 18 or 3 or 4 'elevatorFloor' => 'notIn:13, 18, 3, 4', ]; $customMessage = [ 'info[country].alpha' => 'Only letters please', 'email.required' => 'Field :field: is required', 'email.email' => 'Email has bad format', 'email.unique' => 'This email :value: is not unique', 'elevatorFloor.notIn' => 'Oops', ]; $validation = \Progsmile\Validator\Validator::make($_POST, $rules, $customMessage); # for specific field # you can use below code. $validation->lastname->passes(); $validation->lastname->fails(); # if you're required to check everything # and there must no failing validation $validation->passes(); $validation->fails(); # get first error message $validation->first(); # get first error for `firstname` $validation->first('lastname'); $validation->firstname->first(); # return first error message from each field $validation->firsts(); # get all messages (with param for concrete field) $validation->messages(); $validation->messages('password'); # get all `password` messages $validation->password->messages(); # get 2d array with fields and messages $validation->raw(); # to append a message $validation->add('someField', 'Something is wrong with this');
贡献 
亲爱的贡献者,该项目刚刚开始,尚不稳定,我们非常欢迎您的分支请求。
测试
此测试套件使用 Travis CI 进行每次运行。每次将提交推送到此存储库都会将构建排入持续集成服务,并运行所有测试以确保一切正常且项目稳定。
测试套件可以在您的个人计算机上运行。主要依赖项是 PHPUnit,可以使用 Composer 安装。
# run this command from project root
$ composer install --dev --prefer-source
$ vendor/bin/phpunit --configuration phpunit.xml --coverage-text
有关更多信息,请参阅 PHPUnit 命令行测试运行器。