StaticValidator.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  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 finfo;
  9. use Respect\Validation\Rules\Key;
  10. interface StaticValidator
  11. {
  12. public static function allOf(Validatable ...$rule): ChainedValidator;
  13. public static function alnum(string ...$additionalChars): ChainedValidator;
  14. public static function alpha(string ...$additionalChars): ChainedValidator;
  15. public static function alwaysInvalid(): ChainedValidator;
  16. public static function alwaysValid(): ChainedValidator;
  17. public static function anyOf(Validatable ...$rule): ChainedValidator;
  18. public static function arrayType(): ChainedValidator;
  19. public static function arrayVal(): ChainedValidator;
  20. public static function attribute(
  21. string $reference,
  22. ?Validatable $validator = null,
  23. bool $mandatory = true
  24. ): ChainedValidator;
  25. public static function base(int $base, ?string $chars = null): ChainedValidator;
  26. public static function base64(): ChainedValidator;
  27. /**
  28. * @param mixed $minimum
  29. * @param mixed $maximum
  30. */
  31. public static function between($minimum, $maximum): ChainedValidator;
  32. public static function bic(string $countryCode): ChainedValidator;
  33. public static function boolType(): ChainedValidator;
  34. public static function boolVal(): ChainedValidator;
  35. public static function bsn(): ChainedValidator;
  36. public static function call(callable $callable, Validatable $rule): ChainedValidator;
  37. public static function callableType(): ChainedValidator;
  38. public static function callback(callable $callback): ChainedValidator;
  39. public static function charset(string ...$charset): ChainedValidator;
  40. public static function cnh(): ChainedValidator;
  41. public static function cnpj(): ChainedValidator;
  42. public static function control(string ...$additionalChars): ChainedValidator;
  43. public static function consonant(string ...$additionalChars): ChainedValidator;
  44. /**
  45. * @param mixed $containsValue
  46. */
  47. public static function contains($containsValue, bool $identical = false): ChainedValidator;
  48. /**
  49. * @param mixed[] $needles
  50. */
  51. public static function containsAny(array $needles, bool $strictCompareArray = false): ChainedValidator;
  52. public static function countable(): ChainedValidator;
  53. public static function countryCode(?string $set = null): ChainedValidator;
  54. public static function currencyCode(): ChainedValidator;
  55. public static function cpf(): ChainedValidator;
  56. public static function creditCard(?string $brand = null): ChainedValidator;
  57. public static function date(string $format = 'Y-m-d'): ChainedValidator;
  58. public static function dateTime(?string $format = null): ChainedValidator;
  59. public static function decimal(int $decimals): ChainedValidator;
  60. public static function digit(string ...$additionalChars): ChainedValidator;
  61. public static function directory(): ChainedValidator;
  62. public static function domain(bool $tldCheck = true): ChainedValidator;
  63. public static function each(Validatable $rule): ChainedValidator;
  64. public static function email(): ChainedValidator;
  65. /**
  66. * @param mixed $endValue
  67. */
  68. public static function endsWith($endValue, bool $identical = false): ChainedValidator;
  69. /**
  70. * @param mixed $compareTo
  71. */
  72. public static function equals($compareTo): ChainedValidator;
  73. /**
  74. * @param mixed $compareTo
  75. */
  76. public static function equivalent($compareTo): ChainedValidator;
  77. public static function even(): ChainedValidator;
  78. public static function executable(): ChainedValidator;
  79. public static function exists(): ChainedValidator;
  80. public static function extension(string $extension): ChainedValidator;
  81. public static function factor(int $dividend): ChainedValidator;
  82. public static function falseVal(): ChainedValidator;
  83. public static function fibonacci(): ChainedValidator;
  84. public static function file(): ChainedValidator;
  85. /**
  86. * @param mixed[]|int $options
  87. */
  88. public static function filterVar(int $filter, $options = null): ChainedValidator;
  89. public static function finite(): ChainedValidator;
  90. public static function floatVal(): ChainedValidator;
  91. public static function floatType(): ChainedValidator;
  92. public static function graph(string ...$additionalChars): ChainedValidator;
  93. /**
  94. * @param mixed $compareTo
  95. */
  96. public static function greaterThan($compareTo): ChainedValidator;
  97. public static function hexRgbColor(): ChainedValidator;
  98. public static function iban(): ChainedValidator;
  99. /**
  100. * @param mixed $compareTo
  101. */
  102. public static function identical($compareTo): ChainedValidator;
  103. public static function image(?finfo $fileInfo = null): ChainedValidator;
  104. public static function imei(): ChainedValidator;
  105. /**
  106. * @param mixed[]|mixed $haystack
  107. */
  108. public static function in($haystack, bool $compareIdentical = false): ChainedValidator;
  109. public static function infinite(): ChainedValidator;
  110. public static function instance(string $instanceName): ChainedValidator;
  111. public static function intVal(): ChainedValidator;
  112. public static function intType(): ChainedValidator;
  113. public static function ip(string $range = '*', ?int $options = null): ChainedValidator;
  114. public static function isbn(): ChainedValidator;
  115. public static function iterableType(): ChainedValidator;
  116. public static function json(): ChainedValidator;
  117. public static function key(
  118. string $reference,
  119. ?Validatable $referenceValidator = null,
  120. bool $mandatory = true
  121. ): ChainedValidator;
  122. public static function keyNested(
  123. string $reference,
  124. ?Validatable $referenceValidator = null,
  125. bool $mandatory = true
  126. ): ChainedValidator;
  127. public static function keySet(Key ...$rule): ChainedValidator;
  128. public static function keyValue(string $comparedKey, string $ruleName, string $baseKey): ChainedValidator;
  129. public static function languageCode(?string $set = null): ChainedValidator;
  130. public static function leapDate(string $format): ChainedValidator;
  131. public static function leapYear(): ChainedValidator;
  132. public static function length(?int $min = null, ?int $max = null, bool $inclusive = true): ChainedValidator;
  133. public static function lowercase(): ChainedValidator;
  134. /**
  135. * @param mixed $compareTo
  136. */
  137. public static function lessThan($compareTo): ChainedValidator;
  138. public static function luhn(): ChainedValidator;
  139. public static function macAddress(): ChainedValidator;
  140. /**
  141. * @param mixed $compareTo
  142. */
  143. public static function max($compareTo): ChainedValidator;
  144. public static function maxAge(int $age, ?string $format = null): ChainedValidator;
  145. public static function mimetype(string $mimetype): ChainedValidator;
  146. /**
  147. * @param mixed $compareTo
  148. */
  149. public static function min($compareTo): ChainedValidator;
  150. public static function minAge(int $age, ?string $format = null): ChainedValidator;
  151. public static function multiple(int $multipleOf): ChainedValidator;
  152. public static function negative(): ChainedValidator;
  153. public static function nfeAccessKey(): ChainedValidator;
  154. public static function nif(): ChainedValidator;
  155. public static function nip(): ChainedValidator;
  156. public static function no(bool $useLocale = false): ChainedValidator;
  157. public static function noneOf(Validatable ...$rule): ChainedValidator;
  158. public static function not(Validatable $rule): ChainedValidator;
  159. public static function notBlank(): ChainedValidator;
  160. public static function notEmoji(): ChainedValidator;
  161. public static function notEmpty(): ChainedValidator;
  162. public static function notOptional(): ChainedValidator;
  163. public static function noWhitespace(): ChainedValidator;
  164. public static function nullable(Validatable $rule): ChainedValidator;
  165. public static function nullType(): ChainedValidator;
  166. public static function number(): ChainedValidator;
  167. public static function numericVal(): ChainedValidator;
  168. public static function objectType(): ChainedValidator;
  169. public static function odd(): ChainedValidator;
  170. public static function oneOf(Validatable ...$rule): ChainedValidator;
  171. public static function optional(Validatable $rule): ChainedValidator;
  172. public static function perfectSquare(): ChainedValidator;
  173. public static function pesel(): ChainedValidator;
  174. public static function phone(): ChainedValidator;
  175. public static function mobile(): ChainedValidator;
  176. public static function phpLabel(): ChainedValidator;
  177. public static function pis(): ChainedValidator;
  178. public static function polishIdCard(): ChainedValidator;
  179. public static function positive(): ChainedValidator;
  180. public static function postalCode(string $countryCode): ChainedValidator;
  181. public static function primeNumber(): ChainedValidator;
  182. public static function printable(string ...$additionalChars): ChainedValidator;
  183. public static function punct(string ...$additionalChars): ChainedValidator;
  184. public static function readable(): ChainedValidator;
  185. public static function regex(string $regex): ChainedValidator;
  186. public static function resourceType(): ChainedValidator;
  187. public static function roman(): ChainedValidator;
  188. public static function scalarVal(): ChainedValidator;
  189. public static function size(?string $minSize = null, ?string $maxSize = null): ChainedValidator;
  190. public static function slug(): ChainedValidator;
  191. public static function sorted(string $direction): ChainedValidator;
  192. public static function space(string ...$additionalChars): ChainedValidator;
  193. /**
  194. * @param mixed $startValue
  195. */
  196. public static function startsWith($startValue, bool $identical = false): ChainedValidator;
  197. public static function stringType(): ChainedValidator;
  198. public static function stringVal(): ChainedValidator;
  199. public static function subdivisionCode(string $countryCode): ChainedValidator;
  200. /**
  201. * @param mixed[] $superset
  202. */
  203. public static function subset(array $superset): ChainedValidator;
  204. public static function symbolicLink(): ChainedValidator;
  205. public static function time(string $format = 'H:i:s'): ChainedValidator;
  206. public static function tld(): ChainedValidator;
  207. public static function trueVal(): ChainedValidator;
  208. public static function type(string $type): ChainedValidator;
  209. public static function unique(): ChainedValidator;
  210. public static function uploaded(): ChainedValidator;
  211. public static function uppercase(): ChainedValidator;
  212. public static function url(): ChainedValidator;
  213. public static function uuid(?int $version = null): ChainedValidator;
  214. public static function version(): ChainedValidator;
  215. public static function videoUrl(?string $service = null): ChainedValidator;
  216. public static function vowel(string ...$additionalChars): ChainedValidator;
  217. public static function when(Validatable $if, Validatable $then, ?Validatable $else = null): ChainedValidator;
  218. public static function writable(): ChainedValidator;
  219. public static function xdigit(string ...$additionalChars): ChainedValidator;
  220. public static function yes(bool $useLocale = false): ChainedValidator;
  221. }