mirror of
https://github.com/Respect/Validation.git
synced 2024-06-08 08:42:15 +02:00
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:
parent
433ceb4452
commit
81befe8fa1
|
@ -37,7 +37,7 @@ trait CanCompareValues
|
|||
|
||||
try {
|
||||
return new DateTimeImmutable($value);
|
||||
} catch (Throwable $e) {
|
||||
} catch (Throwable) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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}}',
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
||||
|
|
|
@ -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__';
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Respect\Validation\Rules;
|
||||
namespace Respect\Validation\Rules\Core;
|
||||
|
||||
use Respect\Validation\Result;
|
||||
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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}}',
|
||||
|
|
|
@ -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}}',
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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}}',
|
||||
|
|
|
@ -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}}',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue