https://github.com/mysiar/array-validator
Array Validator
https://github.com/mysiar/array-validator
Last synced: about 1 month ago
JSON representation
Array Validator
- Host: GitHub
- URL: https://github.com/mysiar/array-validator
- Owner: mysiar
- License: mit
- Created: 2020-02-12T16:10:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-23T14:12:43.000Z (about 6 years ago)
- Last Synced: 2025-01-13T09:09:38.766Z (over 1 year ago)
- Language: PHP
- Size: 22.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# mysiar/array-validator
[](https://travis-ci.org/mysiar/array-validator)
# Usage
* example
```php
use Mysiar\ArrayValidator\Validator;
use Symfony\Component\Validator\Constraints\Callback;
use Symfony\Component\Validator\Constraints\Choice;
use Symfony\Component\Validator\Constraints\Date;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Positive;
use Symfony\Component\Validator\Constraints\PositiveOrZero;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
$validator = new Validator();
$validator->addArrayConstraint(new Callback(function($record, ExecutionContextInterface $context) {
if (count($record) !== 15) {
$context->addViolation(sprintf('The array must contain %s columns', 15));
}
}));
$validator->addArrayElementConstraint(0, new Positive());
$validator->addArrayElementConstraint(1, new NotBlank());
$validator->addArrayElementConstraint(2, new NotBlank());
$validator->addArrayElementConstraint(3, new NotBlank());
$validator->addArrayElementConstraint(4, new NotBlank());
$validator->addArrayElementConstraint(5, new Date());
$validator->addArrayElementConstraint(6, new Positive());
$validator->addArrayElementConstraint(7, new NotBlank());
$validator->addArrayElementConstraint(8, new Email());
$validator->addArrayElementConstraint(9, new Date());
$validator->addArrayElementConstraint(10, new Positive());
$validator->addArrayElementConstraint(12, new Choice([0, 1]));
$validator->addArrayElementConstraint(13, new PositiveOrZero());
$validator->addArrayElementConstraint(14, new PositiveOrZero());
```
* notice: in case you use function `fgetcsv` to read csv file line by line to validate Choice of values in the array element you may need to use
```
$validator->addArrayElementConstraint(2, new Choice(["0", "1"]));
```
instead
```
$validator->addArrayElementConstraint(2, new Choice([0, 1]));
```
### Credits
Created by [Piotr Synowiec](https://github.com/mysiar), inspired by [deblan/csv-validator](https://gitnet.fr/deblan/csv-validator)