for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Weew\Validator;
class ValidationResult implements IValidationResult {
/**
* @var IValidationError[]
*/
protected $errors;
* ValidationResult constructor.
*
* @param IValidationError[] $errors
public function __construct(array $errors = []) {
$this->errors = $errors;
}
* @param IValidationError $error
public function addError(IValidationError $error) {
$this->errors[] = $error;
public function addErrors(array $errors) {
foreach ($errors as $error) {
$this->addError($error);
* @return IValidationError[]
public function getErrors() {
return $this->errors;
* @return bool
public function isOk() {
return $this->getErrorCount() === 0;
public function isFailed() {
return ! $this->isOk();
* @return int
public function getErrorCount() {
return count($this->getErrors());
* @param IValidationResult $result
public function extend(IValidationResult $result) {
$this->addErrors($result->getErrors());
* @return array
public function toArray() {
$errors = [];
foreach ($this->getErrors() as $error) {
if ( ! array_has($errors, $error->getSubject())) {
$errors[$error->getSubject()] = [];
$errors[$error->getSubject()][] = $error->getMessage();
return $errors;