https://github.com/diogocavilha/array-validation
It's a simple array validator which uses native filters and validators from PHP.
https://github.com/diogocavilha/array-validation
composer-library composer-package composer-packages filter php php-package validator
Last synced: 12 months ago
JSON representation
It's a simple array validator which uses native filters and validators from PHP.
- Host: GitHub
- URL: https://github.com/diogocavilha/array-validation
- Owner: diogocavilha
- Created: 2016-05-25T13:48:10.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-06-28T00:03:01.000Z (almost 7 years ago)
- Last Synced: 2025-04-14T21:11:24.338Z (12 months ago)
- Topics: composer-library, composer-package, composer-packages, filter, php, php-package, validator
- Language: PHP
- Homepage:
- Size: 29.3 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://travis-ci.org/diogocavilha/array-validation)
[](https://packagist.org/packages/array/validation)
[Documentação em português/Portuguese documentation](https://github.com/diogocavilha/array-validation/blob/master/README.pt-BR.md)
# Array validation
It's a simple array validator which uses native filters and validators from PHP.
# Installing
```bash
composer require array/validation
```
# Usage
Methods:
- `setFields(array $fieldsRules)`
> It adds optional fields to filter/validate.
- `setRequiredFields(array $requiredFieldsRules)`
> It adds required fields to filter/validate.
- `validate(array $input)`
> It validates an input array. It throws an exception in case the validation is not satisfied.
- `isValid(array $input)`
> It validates an input array. It returns `true` in case the input array is valid, otherwise it returns `false`.
- `removeOnly(array $fieldsToRemove)`
> It removes fields that are not in filter/validation rules.
- `getValidArray()`
> It returns an array containing the filtered/validated data.
- `getMessages()`
> It returns an array containing the validation messages. This method should be called after calling the `isValid`.
### Validating required fields:
```php
FILTER_SANITIZE_STRING,
'age' => FILTER_VALIDATE_INT,
];
$arrayToValidate = [
'name' => 'Diogo Alexsander',
'age' => 26,
];
$validator = new SimpleArray();
$validator
->setRequiredFields($rules)
->validate($arrayToValidate);
$data = $validator->getValidArray();
```
### Validating optional fields:
```php
FILTER_SANITIZE_STRING,
'age' => FILTER_VALIDATE_INT,
];
$arrayToValidate = [
'name' => 'Diogo Alexsander',
];
$validator = new SimpleArray();
$validator
->setFields($rules)
->validate($arrayToValidate);
$data = $validator->getValidArray();
```
### Validating both:
```php
FILTER_SANITIZE_STRING,
'age' => FILTER_VALIDATE_INT,
];
$requiredFieldsRules = [
'id' => FILTER_VALIDATE_INT,
];
$arrayToValidate = [
'id' => 1,
'name' => 'Diogo Alexsander',
'age' => 26,
];
$validator = new SimpleArray();
$validator
->setFields($fieldsRules)
->setRequiredFields($requiredFieldsRules)
->validate($arrayToValidate);
$data = $validator->getValidArray();
```
The `removeOnly` method can be used to remove a few fields from input array.
In case it's not called, all the other fields that are not present in the filter/validation rules will be removed from input array.
If you wish to remove just a few fields from input array, the method `removeOnly` can be called by passing an array containing the fields you wish to remove.
> Ps: It's not possible to remove a field that is present in filter/validation rules, if so, it will throw a `RuntimeException`.
```php
FILTER_SANITIZE_STRING,
'age' => FILTER_VALIDATE_INT,
];
$requiredFieldsRules = [
'id' => FILTER_VALIDATE_INT,
];
$arrayToValidate = [
'id' => 1,
'name' => 'Diogo Alexsander',
'age' => 26,
'email' => 'unwanted',
'phone' => 'unwanted',
];
$validator = new SimpleArray();
$validator
->setFields($fieldsRules)
->setRequiredFields($requiredFieldsRules)
->validate($arrayToValidate);
$data = $validator->getValidArray(); // It will return only 'id', 'name' and 'age'
$validator->removeOnly(['phone']);
$data = $validator->getValidArray(); // It will return 'id', 'name', 'age' and 'email'
```
If you don't want validator automatically throw exceptions when the validation is not satisfied, it's possible to call the method `isValid` instead of `validate`.
After that, you can call the method `getMessages` to get an array containing the validation messages.
#### Sample:
```php
'Diogo',
'description' => "This is a test, to know more about it click here",
'email' => 'email@domain.com',
'phone' => '5555555 - test',
];
$rules = [
'phone' => FILTER_VALIDATE_INT,
'name' => FILTER_SANITIZE_STRING,
'description' => FILTER_SANITIZE_STRING
];
$rulesRequired = [
'id' => FILTER_VALIDATE_INT,
'code' => FILTER_VALIDATE_INT,
];
$validator = new SimpleArray();
$validator
->setFields($rules)
->setRequiredFields($rulesRequired);
if (!$validator->isValid($input)) {
$messages = $validator->getMessages();
foreach ($messages as $message) {
echo $message, '
';
}
}
```