for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace indigerd\scenarios\validation\validator;
class ArrayEachValidator extends ArrayValidator
{
protected $validator;
public function __construct(array $params = [])
parent::__construct($params);
if (!($this->validator instanceof ValidatorInterface)) {
throw new \InvalidArgumentException('Invalid validator param value');
}
public function setValidator(ValidatorInterface $validator) : self
$this->validator = $validator;
return $this;
public function validate($value, array $context = []): bool
if ($this->skipOnEmpty and empty($value)) {
return true;
$valid = parent::validate($value, $context);
if (!$valid) {
return false;
foreach ($value as $v) {
if ($this->skipOnEmpty and empty($v)) {
continue;
$valid = $this->validator->validate($v, $context);
if (false === $valid) {
$this->message = $this->validator->getMessage();