Validatable.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /*
  3. * Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
  4. * SPDX-License-Identifier: MIT
  5. */
  6. declare(strict_types=1);
  7. namespace Respect\Validation;
  8. use Respect\Validation\Exceptions\ValidationException;
  9. /** Interface for validation rules */
  10. /**
  11. * @author Alexandre Gomes Gaigalas <alganet@gmail.com>
  12. * @author Henrique Moody <henriquemoody@gmail.com>
  13. */
  14. interface Validatable
  15. {
  16. /**
  17. * @param mixed $input
  18. */
  19. public function assert($input): void;
  20. /**
  21. * @param mixed $input
  22. */
  23. public function check($input): void;
  24. public function getName(): ?string;
  25. /**
  26. * @param mixed $input
  27. * @param mixed[] $extraParameters
  28. */
  29. public function reportError($input, array $extraParameters = []): ValidationException;
  30. public function setName(string $name): Validatable;
  31. public function setTemplate(string $template): Validatable;
  32. public function setDefault(string $default, bool $defaultType=false): Validatable;
  33. /**
  34. * @param mixed $input
  35. */
  36. public function validate($input): bool;
  37. }