An open API service indexing awesome lists of open source software.

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

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();
}
}
}
```