for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace BrenoRoosevelt\Validation;
use BrenoRoosevelt\Validation\Exception\GuardTrait;
use BrenoRoosevelt\Validation\Exception\ValidationExceptionInterface;
class ErrorReporting implements Result
{
use GuardTrait;
/** @var Error[] */
private array $errors = [];
final public function __construct(Error | Result ...$errors)
foreach ($errors as $errorOrResult) {
array_push(
$this->errors,
...($errorOrResult instanceof Error ? [$errorOrResult] : $errorOrResult->getErrors())
);
}
public function add(Error | Result ...$errors): self
return new self(...$this->errors, ...$errors);
public function addError(string $message, ?string $field = null): self
return $this->add(new ErrorMessage($message, $field));
/**
* @inheritDoc
*/
public function isOk(): bool
return empty($this->errors);
public function getErrors(): array
return $this->errors;
/** @throws ValidationExceptionInterface */
public function guard(ValidationExceptionInterface | string | null $validationException = null): void
$this->guardResult($this, $validationException);