Move core rules into the "Core" namespace

That helps organize the code better, making it easier to spot the core
rule. It also helps not allow the Factory to load those rules, as the
new namespace is not registered in it.

Note that the "AbstractAge", "AbstractRelated", and "AbstractRule" were
not moved. I want to do that only when I refactor them.

After I moved classes, I realized that "Comparison" and "FilteredString"
had no tests. I created the tests, and while I did that, I spotted two
bugs:

* The "Equals" rule was failing when comparing non-scalar wth scalar
  values;

* The "Equals" and "Identical" rules were not working correctly because
  "Comparison" was converting their values.

I fixed those bugs in this commit.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
This commit is contained in:
Henrique Moody 2024-03-03 15:00:54 +01:00
parent 433ceb4452
commit 81befe8fa1
No known key found for this signature in database
GPG key ID: 221E9281655813A6
148 changed files with 435 additions and 64 deletions

View file

@ -37,7 +37,7 @@ trait CanCompareValues
try {
return new DateTimeImmutable($value);
} catch (Throwable $e) {
} catch (Throwable) {
return $value;
}
}

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rule;
use Respect\Validation\Rules\Core\Composite;
use function array_filter;
use function array_map;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function ctype_alnum;
@ -23,7 +24,7 @@ use function ctype_alnum;
'{{name}} must not contain letters (a-z), digits (0-9) or {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Alnum extends Filter
final class Alnum extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function ctype_alpha;
@ -23,7 +24,7 @@ use function ctype_alpha;
'{{name}} must not contain letters (a-z) or {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Alpha extends Filter
final class Alpha extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
#[Template(
'{{name}} is always invalid',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
#[Template(
'{{name}} is always valid',

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rule;
use Respect\Validation\Rules\Core\Composite;
use function array_map;
use function array_reduce;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_array;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use ArrayAccess;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SimpleXMLElement;
use function is_array;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_string;
use function mb_strlen;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\ComponentException;
use Respect\Validation\Helpers\CanCompareValues;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
#[Template(
'{{name}} must be between {{minValue}} and {{maxValue}}',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_bool;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function filter_var;
use function is_bool;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function ctype_digit;
use function intval;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_callable;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_merge;
use function call_user_func_array;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\InvalidRuleConstructorException;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use function array_diff;
use function array_merge;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;
use function mb_strlen;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_map;
use function array_sum;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function preg_match;
@ -23,7 +24,7 @@ use function preg_match;
'{{name}} must not contain consonants or {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Consonant extends Filter
final class Consonant extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\InvalidRuleConstructorException;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
use function array_map;
use function count;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function ctype_cntrl;
@ -23,7 +24,7 @@ use function ctype_cntrl;
'{{name}} must not contain control characters or {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Control extends Filter
final class Control extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Helpers\CanCompareValues;
use Respect\Validation\Result;
@ -16,13 +16,11 @@ abstract class Comparison extends Standard
{
use CanCompareValues;
private readonly mixed $compareTo;
abstract protected function compare(mixed $left, mixed $right): bool;
public function __construct(mixed $maxValue)
{
$this->compareTo = $maxValue;
public function __construct(
private readonly mixed $compareTo
) {
}
public function evaluate(mixed $input): Result

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Helpers\DeprecatedValidatableMethods;
use Respect\Validation\Validatable;

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Result;
use Respect\Validation\Validatable;

View file

@ -13,7 +13,6 @@ use Respect\Validation\Helpers\CanBindEvaluateRule;
use Respect\Validation\Result;
use Respect\Validation\Rules\IterableType;
use Respect\Validation\Rules\NotEmpty;
use Respect\Validation\Rules\Wrapper;
use function is_array;
use function iterator_to_array;

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Result;
@ -16,7 +16,7 @@ use function is_scalar;
use function str_replace;
use function str_split;
abstract class Filter extends Standard
abstract class FilteredString extends Standard
{
public const TEMPLATE_EXTRA = '__extra__';

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Result;

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Helpers\DeprecatedValidatableMethods;
use Respect\Validation\Validatable;

View file

@ -7,7 +7,7 @@
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Rules\Core;
use Respect\Validation\Helpers\DeprecatedValidatableMethods;
use Respect\Validation\Result;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Countable as CountableInterface;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_array;

View file

@ -13,6 +13,7 @@ use Respect\Validation\Exceptions\InvalidRuleConstructorException;
use Respect\Validation\Exceptions\MissingComposerDependencyException;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use Sokil\IsoCodes\Database\Countries;
use function class_exists;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function intval;
use function mb_strlen;

View file

@ -13,6 +13,7 @@ use Respect\Validation\Exceptions\InvalidRuleConstructorException;
use Respect\Validation\Exceptions\MissingComposerDependencyException;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use Sokil\IsoCodes\Database\Currencies;
use function class_exists;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use function is_numeric;
use function is_string;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function ctype_digit;
@ -23,7 +24,7 @@ use function ctype_digit;
'{{name}} must not contain digits (0-9) and {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Digit extends Filter
final class Digit extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Directory as NativeDirectory;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SplFileInfo;
use function is_dir;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Egulias\EmailValidator\EmailValidator;
use Egulias\EmailValidator\Validation\RFCValidation;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function class_exists;
use function filter_var;

View file

@ -10,15 +10,29 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use function is_scalar;
#[Template(
'{{name}} must equal {{compareTo}}',
'{{name}} must not equal {{compareTo}}',
)]
final class Equals extends Comparison
final class Equals extends Standard
{
protected function compare(mixed $left, mixed $right): bool
public function __construct(
private readonly mixed $compareTo
) {
}
public function evaluate(mixed $input): Result
{
return $left == $right;
$parameters = ['compareTo' => $this->compareTo];
if (is_scalar($input) === is_scalar($this->compareTo)) {
return new Result($input == $this->compareTo, $input, $this, $parameters);
}
return Result::failed($input, $this, $parameters);
}
}

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Comparison;
use function is_scalar;
use function mb_strtoupper;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function filter_var;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SplFileInfo;
use function is_executable;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SplFileInfo;
use function file_exists;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use SplFileInfo;
use function is_string;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function filter_var;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SplFileInfo;
use function is_file;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\ComponentException;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
use function array_key_exists;
use function filter_var;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_finite;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_float;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function filter_var;
use function is_float;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\FilteredString;
use function ctype_graph;
@ -23,7 +24,7 @@ use function ctype_graph;
'{{name}} must not contain graphical characters or {{additionalChars}}',
self::TEMPLATE_EXTRA,
)]
final class Graph extends Filter
final class Graph extends FilteredString
{
protected function isValid(string $input): bool
{

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Comparison;
#[Template(
'{{name}} must be greater than {{compareTo}}',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Comparison;
#[Template(
'{{name}} must be greater than or equal to {{compareTo}}',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
#[Template(
'{{name}} must be a hex RGB color',

View file

@ -10,15 +10,22 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
#[Template(
'{{name}} must be identical as {{compareTo}}',
'{{name}} must not be identical as {{compareTo}}',
)]
final class Identical extends Comparison
final class Identical extends Standard
{
protected function compare(mixed $left, mixed $right): bool
public function __construct(
private readonly mixed $compareTo
) {
}
public function evaluate(mixed $input): Result
{
return $left === $right;
return new Result($input === $this->compareTo, $input, $this, ['compareTo' => $this->compareTo]);
}
}

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use finfo;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use SplFileInfo;
use function is_file;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;
use function mb_strlen;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_infinite;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_int;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_int;
use function is_string;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function implode;
use function is_scalar;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_iterable;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Helpers\CanValidateIterable;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
#[Template(
'{{name}} must be iterable',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function function_exists;
use function is_string;

View file

@ -13,6 +13,7 @@ use Respect\Validation\Helpers\CanBindEvaluateRule;
use Respect\Validation\Helpers\CanExtractRules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Wrapper;
use Respect\Validation\Validatable;
use function array_diff;

View file

@ -13,6 +13,7 @@ use Respect\Validation\Exceptions\InvalidRuleConstructorException;
use Respect\Validation\Exceptions\MissingComposerDependencyException;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use Sokil\IsoCodes\Database\Countries;
use Sokil\IsoCodes\Database\Languages;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\ComponentException;
use Respect\Validation\Helpers\CanBindEvaluateRule;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Standard;
use Respect\Validation\Validatable;
use function array_merge;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use DateTimeImmutable;
use DateTimeInterface;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use DateTimeInterface;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function date;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Comparison;
#[Template(
'{{name}} must be less than {{compareTo}}',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Comparison;
#[Template(
'{{name}} must be less than or equal to {{compareTo}}',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_string;
use function mb_strtolower;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_map;
use function count;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_string;
use function preg_match;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_map;
use function floor;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_pop;
use function array_sum;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_map;
use function is_scalar;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
use function nl_langinfo;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_null;
use function is_scalar;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rule;
use Respect\Validation\Rules\Core\Composite;
use function array_map;
use function array_reduce;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Wrapper;
final class Not extends Wrapper
{

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function implode;
use function is_string;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_null;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Wrapper;
#[Template(
'The value must be nullable',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_nan;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_object;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function filter_var;
use function is_numeric;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rule;
use Respect\Validation\Rules\Core\Composite;
use function array_map;
use function array_reduce;

View file

@ -12,6 +12,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Helpers\CanValidateUndefined;
use Respect\Validation\Message\Template;
use Respect\Validation\Result;
use Respect\Validation\Rules\Core\Wrapper;
#[Template(
'The value must be optional',

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function floor;
use function is_numeric;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;
use function preg_match;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_string;
use function preg_match;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;
use function mb_strlen;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_scalar;
use function ord;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function array_keys;
use function array_map;

View file

@ -10,6 +10,7 @@ declare(strict_types=1);
namespace Respect\Validation\Rules;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use function is_numeric;

View file

@ -11,6 +11,7 @@ namespace Respect\Validation\Rules;
use Respect\Validation\Exceptions\ComponentException;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Envelope;
use function sprintf;

Some files were not shown because too many files have changed in this diff Show more