https://github.com/hyperf/validation
Validation component for Hyperf
https://github.com/hyperf/validation
Last synced: 10 months ago
JSON representation
Validation component for Hyperf
- Host: GitHub
- URL: https://github.com/hyperf/validation
- Owner: hyperf
- License: mit
- Created: 2019-08-22T08:57:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-02-27T15:17:36.000Z (11 months ago)
- Last Synced: 2025-04-02T08:48:51.960Z (10 months ago)
- Language: PHP
- Homepage: https://hyperf.io
- Size: 462 KB
- Stars: 11
- Watchers: 4
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hyperf Validation
## About
[hyperf/validation](https://github.com/hyperf/validation) 组件衍生于 `Laravel Validation` 组件的,我们对它进行了一些改造,大部分功能保持了相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的 Validation 组件。
## Installation
```
composer require hyperf/validation
```
## Config
### Publish config file
```
# 发布国际化配置,已经发布过国际化配置可以省略
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation
```
### Configuration path
```
your/config/path/autoload/translation.php
```
### Configuration
```php
'zh_CN',
'fallback_locale' => 'en',
'path' => BASE_PATH . '/storage/languages',
];
```
### Exception handler
```php
[
'http' => [
\Hyperf\Validation\ValidationExceptionHandler::class,
],
],
];
```
### Validation middleware
```php
[
\Hyperf\Validation\Middleware\ValidationMiddleware::class,
],
];
```
## Usage
### Generate form request
Command:
```
php bin/hyperf.php gen:request FooRequest
```
Usage:
```php
class IndexController
{
public function foo(FooRequest $request)
{
$request->input('foo');
}
public function bar(RequestInterface $request)
{
$factory = $this->container->get(\Hyperf\Validation\Contract\ValidatorFactoryInterface::class);
$factory->extend('foo', function ($attribute, $value, $parameters, $validator) {
return $value == 'foo';
});
$factory->replacer('foo', function ($message, $attribute, $rule, $parameters) {
return str_replace(':foo', $attribute, $message);
});
$validator = $factory->make(
$request->all(),
[
'name' => 'required|foo',
],
[
'name.foo' => ':foo is not foo',
]
);
if (!$validator->passes()) {
$validator->errors();
}
}
}
```