Rename namespace Rules to Validators

Since that namespace contains our “validators”, naming it as such makes
much more sense.
This commit is contained in:
Henrique Moody 2026-01-05 11:07:36 +01:00
commit 81310cc4d9
No known key found for this signature in database
GPG key ID: 221E9281655813A6
696 changed files with 1020 additions and 1020 deletions

View file

@ -160,5 +160,5 @@ All notable changes of the Respect\Validation releases are documented in this fi
- Remove `not()` shortcut (#444)
- Remove `ValidationExceptionInterface` interface (#591)
- Remove identical checking from "Equals" rule (#442)
- Removed Deprecated Rules (#277)
- Removed Deprecated Validators (#277)
- Validation rules do not accept an empty string by default (#422)

View file

@ -29,8 +29,8 @@ Before writing anything, feature or bug fix:
A common validator on Respect\Validation is composed of three classes:
- `library/Rules/YourValidatorName.php`: the validator itself
- `tests/unit/Rules/YourValidatorNameTest.php`: tests for the validator
- `library/Validators/YourValidatorName.php`: the validator itself
- `tests/unit/Validators/YourValidatorNameTest.php`: tests for the validator
The classes are pretty straightforward. In the sample below, we're going to
create a validator that validates if a string is equal to "Hello World".
@ -60,10 +60,10 @@ and will natively have support for chaining and everything else.
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Validators;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use Respect\Validation\Validators\Core\Simple;
#[Template(
'{{subject}} must be a Hello World',
@ -102,7 +102,7 @@ first item of the arrays:
declare(strict_types=1);
namespace Respect\Validation\Rules;
namespace Respect\Validation\Validators;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;

View file

@ -183,12 +183,12 @@ function overwriteFile(string $content, string $basename): void
];
$names = [];
foreach (new DirectoryIterator(__DIR__ . '/../library/Rules') as $file) {
foreach (new DirectoryIterator(__DIR__ . '/../library/Validators') as $file) {
if (!$file->isFile()) {
continue;
}
$className = 'Respect\\Validation\\Rules\\' . $file->getBasename('.php');
$className = 'Respect\\Validation\\Validators\\' . $file->getBasename('.php');
$reflection = new ReflectionClass($className);
if ($reflection->isAbstract()) {
continue;

View file

@ -9,7 +9,7 @@ declare -r IFS=$'\n'
declare -r LIST_URL="https://data.iana.org/TLD/tlds-alpha-by-domain.txt"
declare -r LIST_FILENAME=$(mktemp)
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Rules/Tld.php
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Validators/Tld.php
declare -r RULE_FILENAME_TEMPORARY=$(mktemp)
echo "- Downloading list"

View file

@ -9,7 +9,7 @@ declare -r IFS=$'\n'
declare -r LIST_URL="https://download.geonames.org/export/dump/countryInfo.txt"
declare -r LIST_FILENAME=$(mktemp)
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Rules/PostalCode.php
declare -r RULE_FILENAME=$(dirname "${BASH_SOURCE}")/../library/Validators/PostalCode.php
declare -r RULE_FILENAME_TEMPORARY=$(mktemp)
echo "- Downloading list"

View file

@ -32,17 +32,17 @@ v::intType()->positive()->assert($input);
Respect\Validation offers over 150 validators, many of which are designed to address common scenarios. Here's a quick guide to some specific use cases and the validators that make validation straightforward.
- Using validators as **PHP Attributes**: [Attributes](rules/Attributes.md).
- Validating **Arrays**: [Key](rules/Key.md), [KeyOptional](rules/KeyOptional.md), [KeyExists](rules/KeyExists.md).
- Validating **Array structures**: [KeySet](rules/KeySet.md).
- Validating **Object properties**: [Property](rules/Property.md), [PropertyOptional](rules/PropertyOptional.md), [PropertyExists](rules/PropertyExists.md).
- Using **Conditional validation**: [NullOr](rules/NullOr.md), [UndefOr](rules/UndefOr.md), [When](rules/When.md).
- Using **Grouped validation**: [AllOf](rules/AllOf.md), [AnyOf](rules/AnyOf.md), [NoneOf](rules/NoneOf.md), [OneOf](rules/OneOf.md)
- Validating **Each** value in the input: [Each](rules/Each.md).
- Validating the **Length** of the input: [Length](rules/Length.md).
- Validating the **Maximum** value in the input: [Max](rules/Max.md).
- Validating the **Minimum** value in the input: [Min](rules/Min.md).
- Handling **Special cases**: [Lazy](rules/Lazy.md), [Circuit](rules/Circuit.md), [Call](rules/Call.md).
- Using validators as **PHP Attributes**: [Attributes](validators/Attributes.md).
- Validating **Arrays**: [Key](validators/Key.md), [KeyOptional](validators/KeyOptional.md), [KeyExists](validators/KeyExists.md).
- Validating **Array structures**: [KeySet](validators/KeySet.md).
- Validating **Object properties**: [Property](validators/Property.md), [PropertyOptional](validators/PropertyOptional.md), [PropertyExists](validators/PropertyExists.md).
- Using **Conditional validation**: [NullOr](validators/NullOr.md), [UndefOr](validators/UndefOr.md), [When](validators/When.md).
- Using **Grouped validation**: [AllOf](validators/AllOf.md), [AnyOf](validators/AnyOf.md), [NoneOf](validators/NoneOf.md), [OneOf](validators/OneOf.md)
- Validating **Each** value in the input: [Each](validators/Each.md).
- Validating the **Length** of the input: [Length](validators/Length.md).
- Validating the **Maximum** value in the input: [Max](validators/Max.md).
- Validating the **Minimum** value in the input: [Min](validators/Min.md).
- Handling **Special cases**: [Lazy](validators/Lazy.md), [Circuit](validators/Circuit.md), [Call](validators/Call.md).
### Custom templates
@ -93,7 +93,7 @@ Use the `not` prefix to invert a validator.
v::notEquals('main')->assert($input);
```
For more details, check the [Not](rules/Not.md) validator documentation.
For more details, check the [Not](validators/Not.md) validator documentation.
## Reusing validators

View file

@ -51,7 +51,7 @@ Array
)
```
When validating with [Key](rules/Key.md) or [Property](rules/Property.md) the keys of will correspond to the name of the key or property that failed the validation.
When validating with [Key](validators/Key.md) or [Property](validators/Property.md) the keys of will correspond to the name of the key or property that failed the validation.
## Custom templates

View file

@ -12,20 +12,20 @@ $usernameValidator->isValid('alganet'); // true
```
If you `var_dump($usernameValidator)`, you'll see a composite of objects with
`Respect\Validation\Rules\Alnum`, `Respect\Validation\Rules\Spaced` wrapped in `Respect\Validation\Rules\Not` and
`Respect\Validation\Rules\Length`. There is a specific object for each validator, and
`Respect\Validation\Validators\Alnum`, `Respect\Validation\Validators\Spaced` wrapped in `Respect\Validation\Validators\Not` and
`Respect\Validation\Validators\Length`. There is a specific object for each validator, and
the chain only builds the structure. You can build it by yourself:
```php
use Respect\Validation\Rules;
use Respect\Validation\Validators;
use Respect\Validation\ValidatorBuilder;
$usernameValidator = ValidatorBuilder::init(
new Rules\Alnum(),
new Rules\Not(
new Rules\Spaced(),
new Validators\Alnum(),
new Validators\Not(
new Validators\Spaced(),
),
new Rules\Length(1, 15),
new Validators\Length(1, 15),
);
$usernameValidator->isValid('alganet'); // true
```
@ -34,17 +34,17 @@ This is still a very lean API. You can use it in any dependency injection
container or test it in the way you want. Nesting is still possible:
```php
use Respect\Validation\Rules;
use Respect\Validation\Validators;
$usernameValidator = ValidatorBuilder::init(
new Rules\Key(
new Validators\Key(
'name',
new Rules\AllOf(
new Rules\Alnum(),
new Rules\Not(
new Rules\Spaced(),
new Validators\AllOf(
new Validators\Alnum(),
new Validators\Not(
new Validators\Spaced(),
),
new Rules\Length(1, 15),
new Validators\Length(1, 15),
)
)
);

View file

@ -4,15 +4,15 @@ You can also create and use your own validators. To do this, you will need to cr
a validator and an exception to go with the validator.
To create a validator, you need to create a class that implements the `Validator` interface
and is within the Rules `namespace`. It is convenient to just extend the `Simple` or
and is within the Validators `namespace`. It is convenient to just extend the `Simple` or
`Standard` class. When the validator is called the logic inside the validate method will be
executed. Here's how the class should look:
```php
namespace My\Validation\Rules;
namespace My\Validation\Validators;
use Respect\Validation\Message\Template;
use Respect\Validation\Rules\Core\Simple;
use Respect\Validation\Validators\Core\Simple;
#[Template(
'{{subject}} is something',
@ -37,7 +37,7 @@ default `Factory`.
```php
Factory::setDefaultInstance(
(new Factory())
->withNamespace('My\\Validation\\Rules')
->withNamespace('My\\Validation\\Validators')
);
v::something(); // Try to load "My\Validation\Rules\Something" if any
v::something(); // Try to load "My\Validation\Validators\Something" if any
```

View file

@ -2,468 +2,468 @@
## Arrays
- [ArrayType](rules/ArrayType.md)
- [ArrayVal](rules/ArrayVal.md)
- [Contains](rules/Contains.md)
- [ContainsAny](rules/ContainsAny.md)
- [Each](rules/Each.md)
- [EndsWith](rules/EndsWith.md)
- [In](rules/In.md)
- [Key](rules/Key.md)
- [KeyExists](rules/KeyExists.md)
- [KeyOptional](rules/KeyOptional.md)
- [KeySet](rules/KeySet.md)
- [Sorted](rules/Sorted.md)
- [StartsWith](rules/StartsWith.md)
- [Subset](rules/Subset.md)
- [Unique](rules/Unique.md)
- [ArrayType](validators/ArrayType.md)
- [ArrayVal](validators/ArrayVal.md)
- [Contains](validators/Contains.md)
- [ContainsAny](validators/ContainsAny.md)
- [Each](validators/Each.md)
- [EndsWith](validators/EndsWith.md)
- [In](validators/In.md)
- [Key](validators/Key.md)
- [KeyExists](validators/KeyExists.md)
- [KeyOptional](validators/KeyOptional.md)
- [KeySet](validators/KeySet.md)
- [Sorted](validators/Sorted.md)
- [StartsWith](validators/StartsWith.md)
- [Subset](validators/Subset.md)
- [Unique](validators/Unique.md)
## Banking
- [CreditCard](rules/CreditCard.md)
- [Iban](rules/Iban.md)
- [CreditCard](validators/CreditCard.md)
- [Iban](validators/Iban.md)
## Booleans
- [AlwaysInvalid](rules/AlwaysInvalid.md)
- [AlwaysValid](rules/AlwaysValid.md)
- [BoolType](rules/BoolType.md)
- [BoolVal](rules/BoolVal.md)
- [FalseVal](rules/FalseVal.md)
- [No](rules/No.md)
- [TrueVal](rules/TrueVal.md)
- [Yes](rules/Yes.md)
- [AlwaysInvalid](validators/AlwaysInvalid.md)
- [AlwaysValid](validators/AlwaysValid.md)
- [BoolType](validators/BoolType.md)
- [BoolVal](validators/BoolVal.md)
- [FalseVal](validators/FalseVal.md)
- [No](validators/No.md)
- [TrueVal](validators/TrueVal.md)
- [Yes](validators/Yes.md)
## Callables
- [Call](rules/Call.md)
- [CallableType](rules/CallableType.md)
- [Callback](rules/Callback.md)
- [Lazy](rules/Lazy.md)
- [Call](validators/Call.md)
- [CallableType](validators/CallableType.md)
- [Callback](validators/Callback.md)
- [Lazy](validators/Lazy.md)
## Comparisons
- [All](rules/All.md)
- [Between](rules/Between.md)
- [BetweenExclusive](rules/BetweenExclusive.md)
- [Equals](rules/Equals.md)
- [Equivalent](rules/Equivalent.md)
- [GreaterThan](rules/GreaterThan.md)
- [GreaterThanOrEqual](rules/GreaterThanOrEqual.md)
- [Identical](rules/Identical.md)
- [In](rules/In.md)
- [Length](rules/Length.md)
- [LessThan](rules/LessThan.md)
- [LessThanOrEqual](rules/LessThanOrEqual.md)
- [Max](rules/Max.md)
- [Min](rules/Min.md)
- [All](validators/All.md)
- [Between](validators/Between.md)
- [BetweenExclusive](validators/BetweenExclusive.md)
- [Equals](validators/Equals.md)
- [Equivalent](validators/Equivalent.md)
- [GreaterThan](validators/GreaterThan.md)
- [GreaterThanOrEqual](validators/GreaterThanOrEqual.md)
- [Identical](validators/Identical.md)
- [In](validators/In.md)
- [Length](validators/Length.md)
- [LessThan](validators/LessThan.md)
- [LessThanOrEqual](validators/LessThanOrEqual.md)
- [Max](validators/Max.md)
- [Min](validators/Min.md)
## Composite
- [AllOf](rules/AllOf.md)
- [AnyOf](rules/AnyOf.md)
- [Circuit](rules/Circuit.md)
- [NoneOf](rules/NoneOf.md)
- [OneOf](rules/OneOf.md)
- [AllOf](validators/AllOf.md)
- [AnyOf](validators/AnyOf.md)
- [Circuit](validators/Circuit.md)
- [NoneOf](validators/NoneOf.md)
- [OneOf](validators/OneOf.md)
## Conditions
- [Circuit](rules/Circuit.md)
- [Not](rules/Not.md)
- [When](rules/When.md)
- [Circuit](validators/Circuit.md)
- [Not](validators/Not.md)
- [When](validators/When.md)
## Core
- [Named](rules/Named.md)
- [Not](rules/Not.md)
- [Templated](rules/Templated.md)
- [Named](validators/Named.md)
- [Not](validators/Not.md)
- [Templated](validators/Templated.md)
## Date and Time
- [Date](rules/Date.md)
- [DateTime](rules/DateTime.md)
- [DateTimeDiff](rules/DateTimeDiff.md)
- [LeapDate](rules/LeapDate.md)
- [LeapYear](rules/LeapYear.md)
- [Time](rules/Time.md)
- [Date](validators/Date.md)
- [DateTime](validators/DateTime.md)
- [DateTimeDiff](validators/DateTimeDiff.md)
- [LeapDate](validators/LeapDate.md)
- [LeapYear](validators/LeapYear.md)
- [Time](validators/Time.md)
## File system
- [Directory](rules/Directory.md)
- [Executable](rules/Executable.md)
- [Exists](rules/Exists.md)
- [Extension](rules/Extension.md)
- [File](rules/File.md)
- [Image](rules/Image.md)
- [Mimetype](rules/Mimetype.md)
- [Readable](rules/Readable.md)
- [Size](rules/Size.md)
- [SymbolicLink](rules/SymbolicLink.md)
- [Uploaded](rules/Uploaded.md)
- [Writable](rules/Writable.md)
- [Directory](validators/Directory.md)
- [Executable](validators/Executable.md)
- [Exists](validators/Exists.md)
- [Extension](validators/Extension.md)
- [File](validators/File.md)
- [Image](validators/Image.md)
- [Mimetype](validators/Mimetype.md)
- [Readable](validators/Readable.md)
- [Size](validators/Size.md)
- [SymbolicLink](validators/SymbolicLink.md)
- [Uploaded](validators/Uploaded.md)
- [Writable](validators/Writable.md)
## Identifications
- [Bsn](rules/Bsn.md)
- [Cnh](rules/Cnh.md)
- [Cnpj](rules/Cnpj.md)
- [Cpf](rules/Cpf.md)
- [Hetu](rules/Hetu.md)
- [Imei](rules/Imei.md)
- [Isbn](rules/Isbn.md)
- [Luhn](rules/Luhn.md)
- [MacAddress](rules/MacAddress.md)
- [NfeAccessKey](rules/NfeAccessKey.md)
- [Nif](rules/Nif.md)
- [Nip](rules/Nip.md)
- [Pesel](rules/Pesel.md)
- [Pis](rules/Pis.md)
- [PolishIdCard](rules/PolishIdCard.md)
- [PortugueseNif](rules/PortugueseNif.md)
- [Bsn](validators/Bsn.md)
- [Cnh](validators/Cnh.md)
- [Cnpj](validators/Cnpj.md)
- [Cpf](validators/Cpf.md)
- [Hetu](validators/Hetu.md)
- [Imei](validators/Imei.md)
- [Isbn](validators/Isbn.md)
- [Luhn](validators/Luhn.md)
- [MacAddress](validators/MacAddress.md)
- [NfeAccessKey](validators/NfeAccessKey.md)
- [Nif](validators/Nif.md)
- [Nip](validators/Nip.md)
- [Pesel](validators/Pesel.md)
- [Pis](validators/Pis.md)
- [PolishIdCard](validators/PolishIdCard.md)
- [PortugueseNif](validators/PortugueseNif.md)
## Internet
- [Domain](rules/Domain.md)
- [Email](rules/Email.md)
- [Ip](rules/Ip.md)
- [PublicDomainSuffix](rules/PublicDomainSuffix.md)
- [Tld](rules/Tld.md)
- [Url](rules/Url.md)
- [VideoUrl](rules/VideoUrl.md)
- [Domain](validators/Domain.md)
- [Email](validators/Email.md)
- [Ip](validators/Ip.md)
- [PublicDomainSuffix](validators/PublicDomainSuffix.md)
- [Tld](validators/Tld.md)
- [Url](validators/Url.md)
- [VideoUrl](validators/VideoUrl.md)
## ISO codes
- [CountryCode](rules/CountryCode.md)
- [CurrencyCode](rules/CurrencyCode.md)
- [LanguageCode](rules/LanguageCode.md)
- [SubdivisionCode](rules/SubdivisionCode.md)
- [CountryCode](validators/CountryCode.md)
- [CurrencyCode](validators/CurrencyCode.md)
- [LanguageCode](validators/LanguageCode.md)
- [SubdivisionCode](validators/SubdivisionCode.md)
## Localization
- [CountryCode](rules/CountryCode.md)
- [CurrencyCode](rules/CurrencyCode.md)
- [LanguageCode](rules/LanguageCode.md)
- [PostalCode](rules/PostalCode.md)
- [SubdivisionCode](rules/SubdivisionCode.md)
- [CountryCode](validators/CountryCode.md)
- [CurrencyCode](validators/CurrencyCode.md)
- [LanguageCode](validators/LanguageCode.md)
- [PostalCode](validators/PostalCode.md)
- [SubdivisionCode](validators/SubdivisionCode.md)
## Math
- [Factor](rules/Factor.md)
- [Fibonacci](rules/Fibonacci.md)
- [Finite](rules/Finite.md)
- [Infinite](rules/Infinite.md)
- [Multiple](rules/Multiple.md)
- [Negative](rules/Negative.md)
- [PerfectSquare](rules/PerfectSquare.md)
- [Positive](rules/Positive.md)
- [PrimeNumber](rules/PrimeNumber.md)
- [Factor](validators/Factor.md)
- [Fibonacci](validators/Fibonacci.md)
- [Finite](validators/Finite.md)
- [Infinite](validators/Infinite.md)
- [Multiple](validators/Multiple.md)
- [Negative](validators/Negative.md)
- [PerfectSquare](validators/PerfectSquare.md)
- [Positive](validators/Positive.md)
- [PrimeNumber](validators/PrimeNumber.md)
## Miscellaneous
- [Blank](rules/Blank.md)
- [Falsy](rules/Falsy.md)
- [FilterVar](rules/FilterVar.md)
- [Named](rules/Named.md)
- [Templated](rules/Templated.md)
- [Undef](rules/Undef.md)
- [Blank](validators/Blank.md)
- [Falsy](validators/Falsy.md)
- [FilterVar](validators/FilterVar.md)
- [Named](validators/Named.md)
- [Templated](validators/Templated.md)
- [Undef](validators/Undef.md)
## Nesting
- [AllOf](rules/AllOf.md)
- [AnyOf](rules/AnyOf.md)
- [Call](rules/Call.md)
- [Circuit](rules/Circuit.md)
- [Each](rules/Each.md)
- [Key](rules/Key.md)
- [KeySet](rules/KeySet.md)
- [Lazy](rules/Lazy.md)
- [NoneOf](rules/NoneOf.md)
- [Not](rules/Not.md)
- [NullOr](rules/NullOr.md)
- [OneOf](rules/OneOf.md)
- [Property](rules/Property.md)
- [PropertyOptional](rules/PropertyOptional.md)
- [UndefOr](rules/UndefOr.md)
- [When](rules/When.md)
- [AllOf](validators/AllOf.md)
- [AnyOf](validators/AnyOf.md)
- [Call](validators/Call.md)
- [Circuit](validators/Circuit.md)
- [Each](validators/Each.md)
- [Key](validators/Key.md)
- [KeySet](validators/KeySet.md)
- [Lazy](validators/Lazy.md)
- [NoneOf](validators/NoneOf.md)
- [Not](validators/Not.md)
- [NullOr](validators/NullOr.md)
- [OneOf](validators/OneOf.md)
- [Property](validators/Property.md)
- [PropertyOptional](validators/PropertyOptional.md)
- [UndefOr](validators/UndefOr.md)
- [When](validators/When.md)
## Numbers
- [Base](rules/Base.md)
- [Decimal](rules/Decimal.md)
- [Digit](rules/Digit.md)
- [Even](rules/Even.md)
- [Factor](rules/Factor.md)
- [Fibonacci](rules/Fibonacci.md)
- [Finite](rules/Finite.md)
- [FloatType](rules/FloatType.md)
- [FloatVal](rules/FloatVal.md)
- [Infinite](rules/Infinite.md)
- [IntType](rules/IntType.md)
- [IntVal](rules/IntVal.md)
- [Multiple](rules/Multiple.md)
- [Negative](rules/Negative.md)
- [Number](rules/Number.md)
- [NumericVal](rules/NumericVal.md)
- [Odd](rules/Odd.md)
- [PerfectSquare](rules/PerfectSquare.md)
- [Positive](rules/Positive.md)
- [PrimeNumber](rules/PrimeNumber.md)
- [Roman](rules/Roman.md)
- [Base](validators/Base.md)
- [Decimal](validators/Decimal.md)
- [Digit](validators/Digit.md)
- [Even](validators/Even.md)
- [Factor](validators/Factor.md)
- [Fibonacci](validators/Fibonacci.md)
- [Finite](validators/Finite.md)
- [FloatType](validators/FloatType.md)
- [FloatVal](validators/FloatVal.md)
- [Infinite](validators/Infinite.md)
- [IntType](validators/IntType.md)
- [IntVal](validators/IntVal.md)
- [Multiple](validators/Multiple.md)
- [Negative](validators/Negative.md)
- [Number](validators/Number.md)
- [NumericVal](validators/NumericVal.md)
- [Odd](validators/Odd.md)
- [PerfectSquare](validators/PerfectSquare.md)
- [Positive](validators/Positive.md)
- [PrimeNumber](validators/PrimeNumber.md)
- [Roman](validators/Roman.md)
## Objects
- [Attributes](rules/Attributes.md)
- [Instance](rules/Instance.md)
- [ObjectType](rules/ObjectType.md)
- [Property](rules/Property.md)
- [PropertyExists](rules/PropertyExists.md)
- [PropertyOptional](rules/PropertyOptional.md)
- [Attributes](validators/Attributes.md)
- [Instance](validators/Instance.md)
- [ObjectType](validators/ObjectType.md)
- [Property](validators/Property.md)
- [PropertyExists](validators/PropertyExists.md)
- [PropertyOptional](validators/PropertyOptional.md)
## Strings
- [Alnum](rules/Alnum.md)
- [Alpha](rules/Alpha.md)
- [Base64](rules/Base64.md)
- [Charset](rules/Charset.md)
- [Consonant](rules/Consonant.md)
- [Contains](rules/Contains.md)
- [ContainsAny](rules/ContainsAny.md)
- [Control](rules/Control.md)
- [Digit](rules/Digit.md)
- [Emoji](rules/Emoji.md)
- [EndsWith](rules/EndsWith.md)
- [Graph](rules/Graph.md)
- [HexRgbColor](rules/HexRgbColor.md)
- [In](rules/In.md)
- [Json](rules/Json.md)
- [Lowercase](rules/Lowercase.md)
- [Phone](rules/Phone.md)
- [PhpLabel](rules/PhpLabel.md)
- [PostalCode](rules/PostalCode.md)
- [Printable](rules/Printable.md)
- [Punct](rules/Punct.md)
- [Regex](rules/Regex.md)
- [Slug](rules/Slug.md)
- [Sorted](rules/Sorted.md)
- [Space](rules/Space.md)
- [Spaced](rules/Spaced.md)
- [StartsWith](rules/StartsWith.md)
- [StringType](rules/StringType.md)
- [StringVal](rules/StringVal.md)
- [Uppercase](rules/Uppercase.md)
- [Uuid](rules/Uuid.md)
- [Version](rules/Version.md)
- [Vowel](rules/Vowel.md)
- [Xdigit](rules/Xdigit.md)
- [Alnum](validators/Alnum.md)
- [Alpha](validators/Alpha.md)
- [Base64](validators/Base64.md)
- [Charset](validators/Charset.md)
- [Consonant](validators/Consonant.md)
- [Contains](validators/Contains.md)
- [ContainsAny](validators/ContainsAny.md)
- [Control](validators/Control.md)
- [Digit](validators/Digit.md)
- [Emoji](validators/Emoji.md)
- [EndsWith](validators/EndsWith.md)
- [Graph](validators/Graph.md)
- [HexRgbColor](validators/HexRgbColor.md)
- [In](validators/In.md)
- [Json](validators/Json.md)
- [Lowercase](validators/Lowercase.md)
- [Phone](validators/Phone.md)
- [PhpLabel](validators/PhpLabel.md)
- [PostalCode](validators/PostalCode.md)
- [Printable](validators/Printable.md)
- [Punct](validators/Punct.md)
- [Regex](validators/Regex.md)
- [Slug](validators/Slug.md)
- [Sorted](validators/Sorted.md)
- [Space](validators/Space.md)
- [Spaced](validators/Spaced.md)
- [StartsWith](validators/StartsWith.md)
- [StringType](validators/StringType.md)
- [StringVal](validators/StringVal.md)
- [Uppercase](validators/Uppercase.md)
- [Uuid](validators/Uuid.md)
- [Version](validators/Version.md)
- [Vowel](validators/Vowel.md)
- [Xdigit](validators/Xdigit.md)
## Structures
- [Attributes](rules/Attributes.md)
- [Key](rules/Key.md)
- [KeyExists](rules/KeyExists.md)
- [KeyOptional](rules/KeyOptional.md)
- [KeySet](rules/KeySet.md)
- [Named](rules/Named.md)
- [Property](rules/Property.md)
- [PropertyExists](rules/PropertyExists.md)
- [PropertyOptional](rules/PropertyOptional.md)
- [Templated](rules/Templated.md)
- [Attributes](validators/Attributes.md)
- [Key](validators/Key.md)
- [KeyExists](validators/KeyExists.md)
- [KeyOptional](validators/KeyOptional.md)
- [KeySet](validators/KeySet.md)
- [Named](validators/Named.md)
- [Property](validators/Property.md)
- [PropertyExists](validators/PropertyExists.md)
- [PropertyOptional](validators/PropertyOptional.md)
- [Templated](validators/Templated.md)
## Transformations
- [All](rules/All.md)
- [Call](rules/Call.md)
- [Each](rules/Each.md)
- [Length](rules/Length.md)
- [Max](rules/Max.md)
- [Min](rules/Min.md)
- [Size](rules/Size.md)
- [All](validators/All.md)
- [Call](validators/Call.md)
- [Each](validators/Each.md)
- [Length](validators/Length.md)
- [Max](validators/Max.md)
- [Min](validators/Min.md)
- [Size](validators/Size.md)
## Types
- [ArrayType](rules/ArrayType.md)
- [ArrayVal](rules/ArrayVal.md)
- [BoolType](rules/BoolType.md)
- [BoolVal](rules/BoolVal.md)
- [CallableType](rules/CallableType.md)
- [Countable](rules/Countable.md)
- [FloatType](rules/FloatType.md)
- [FloatVal](rules/FloatVal.md)
- [IntType](rules/IntType.md)
- [IntVal](rules/IntVal.md)
- [IterableType](rules/IterableType.md)
- [IterableVal](rules/IterableVal.md)
- [NullType](rules/NullType.md)
- [NumericVal](rules/NumericVal.md)
- [ObjectType](rules/ObjectType.md)
- [ResourceType](rules/ResourceType.md)
- [ScalarVal](rules/ScalarVal.md)
- [StringType](rules/StringType.md)
- [StringVal](rules/StringVal.md)
- [Type](rules/Type.md)
- [ArrayType](validators/ArrayType.md)
- [ArrayVal](validators/ArrayVal.md)
- [BoolType](validators/BoolType.md)
- [BoolVal](validators/BoolVal.md)
- [CallableType](validators/CallableType.md)
- [Countable](validators/Countable.md)
- [FloatType](validators/FloatType.md)
- [FloatVal](validators/FloatVal.md)
- [IntType](validators/IntType.md)
- [IntVal](validators/IntVal.md)
- [IterableType](validators/IterableType.md)
- [IterableVal](validators/IterableVal.md)
- [NullType](validators/NullType.md)
- [NumericVal](validators/NumericVal.md)
- [ObjectType](validators/ObjectType.md)
- [ResourceType](validators/ResourceType.md)
- [ScalarVal](validators/ScalarVal.md)
- [StringType](validators/StringType.md)
- [StringVal](validators/StringVal.md)
- [Type](validators/Type.md)
## Alphabetically
- [All](rules/All.md)
- [AllOf](rules/AllOf.md)
- [Alnum](rules/Alnum.md)
- [Alpha](rules/Alpha.md)
- [AlwaysInvalid](rules/AlwaysInvalid.md)
- [AlwaysValid](rules/AlwaysValid.md)
- [AnyOf](rules/AnyOf.md)
- [ArrayType](rules/ArrayType.md)
- [ArrayVal](rules/ArrayVal.md)
- [Attributes](rules/Attributes.md)
- [Base](rules/Base.md)
- [Base64](rules/Base64.md)
- [Between](rules/Between.md)
- [BetweenExclusive](rules/BetweenExclusive.md)
- [Blank](rules/Blank.md)
- [BoolType](rules/BoolType.md)
- [BoolVal](rules/BoolVal.md)
- [Bsn](rules/Bsn.md)
- [Call](rules/Call.md)
- [CallableType](rules/CallableType.md)
- [Callback](rules/Callback.md)
- [Charset](rules/Charset.md)
- [Circuit](rules/Circuit.md)
- [Cnh](rules/Cnh.md)
- [Cnpj](rules/Cnpj.md)
- [Consonant](rules/Consonant.md)
- [Contains](rules/Contains.md)
- [ContainsAny](rules/ContainsAny.md)
- [Control](rules/Control.md)
- [Countable](rules/Countable.md)
- [CountryCode](rules/CountryCode.md)
- [Cpf](rules/Cpf.md)
- [CreditCard](rules/CreditCard.md)
- [CurrencyCode](rules/CurrencyCode.md)
- [Date](rules/Date.md)
- [DateTime](rules/DateTime.md)
- [DateTimeDiff](rules/DateTimeDiff.md)
- [Decimal](rules/Decimal.md)
- [Digit](rules/Digit.md)
- [Directory](rules/Directory.md)
- [Domain](rules/Domain.md)
- [Each](rules/Each.md)
- [Email](rules/Email.md)
- [Emoji](rules/Emoji.md)
- [EndsWith](rules/EndsWith.md)
- [Equals](rules/Equals.md)
- [Equivalent](rules/Equivalent.md)
- [Even](rules/Even.md)
- [Executable](rules/Executable.md)
- [Exists](rules/Exists.md)
- [Extension](rules/Extension.md)
- [Factor](rules/Factor.md)
- [FalseVal](rules/FalseVal.md)
- [Falsy](rules/Falsy.md)
- [Fibonacci](rules/Fibonacci.md)
- [File](rules/File.md)
- [FilterVar](rules/FilterVar.md)
- [Finite](rules/Finite.md)
- [FloatType](rules/FloatType.md)
- [FloatVal](rules/FloatVal.md)
- [Graph](rules/Graph.md)
- [GreaterThan](rules/GreaterThan.md)
- [GreaterThanOrEqual](rules/GreaterThanOrEqual.md)
- [Hetu](rules/Hetu.md)
- [HexRgbColor](rules/HexRgbColor.md)
- [Iban](rules/Iban.md)
- [Identical](rules/Identical.md)
- [Image](rules/Image.md)
- [Imei](rules/Imei.md)
- [In](rules/In.md)
- [Infinite](rules/Infinite.md)
- [Instance](rules/Instance.md)
- [IntType](rules/IntType.md)
- [IntVal](rules/IntVal.md)
- [Ip](rules/Ip.md)
- [Isbn](rules/Isbn.md)
- [IterableType](rules/IterableType.md)
- [IterableVal](rules/IterableVal.md)
- [Json](rules/Json.md)
- [Key](rules/Key.md)
- [KeyExists](rules/KeyExists.md)
- [KeyOptional](rules/KeyOptional.md)
- [KeySet](rules/KeySet.md)
- [LanguageCode](rules/LanguageCode.md)
- [Lazy](rules/Lazy.md)
- [LeapDate](rules/LeapDate.md)
- [LeapYear](rules/LeapYear.md)
- [Length](rules/Length.md)
- [LessThan](rules/LessThan.md)
- [LessThanOrEqual](rules/LessThanOrEqual.md)
- [Lowercase](rules/Lowercase.md)
- [Luhn](rules/Luhn.md)
- [MacAddress](rules/MacAddress.md)
- [Max](rules/Max.md)
- [Mimetype](rules/Mimetype.md)
- [Min](rules/Min.md)
- [Multiple](rules/Multiple.md)
- [Named](rules/Named.md)
- [Negative](rules/Negative.md)
- [NfeAccessKey](rules/NfeAccessKey.md)
- [Nif](rules/Nif.md)
- [Nip](rules/Nip.md)
- [No](rules/No.md)
- [NoneOf](rules/NoneOf.md)
- [Not](rules/Not.md)
- [NullOr](rules/NullOr.md)
- [NullType](rules/NullType.md)
- [Number](rules/Number.md)
- [NumericVal](rules/NumericVal.md)
- [ObjectType](rules/ObjectType.md)
- [Odd](rules/Odd.md)
- [OneOf](rules/OneOf.md)
- [PerfectSquare](rules/PerfectSquare.md)
- [Pesel](rules/Pesel.md)
- [Phone](rules/Phone.md)
- [PhpLabel](rules/PhpLabel.md)
- [Pis](rules/Pis.md)
- [PolishIdCard](rules/PolishIdCard.md)
- [PortugueseNif](rules/PortugueseNif.md)
- [Positive](rules/Positive.md)
- [PostalCode](rules/PostalCode.md)
- [PrimeNumber](rules/PrimeNumber.md)
- [Printable](rules/Printable.md)
- [Property](rules/Property.md)
- [PropertyExists](rules/PropertyExists.md)
- [PropertyOptional](rules/PropertyOptional.md)
- [PublicDomainSuffix](rules/PublicDomainSuffix.md)
- [Punct](rules/Punct.md)
- [Readable](rules/Readable.md)
- [Regex](rules/Regex.md)
- [ResourceType](rules/ResourceType.md)
- [Roman](rules/Roman.md)
- [ScalarVal](rules/ScalarVal.md)
- [Size](rules/Size.md)
- [Slug](rules/Slug.md)
- [Sorted](rules/Sorted.md)
- [Space](rules/Space.md)
- [Spaced](rules/Spaced.md)
- [StartsWith](rules/StartsWith.md)
- [StringType](rules/StringType.md)
- [StringVal](rules/StringVal.md)
- [SubdivisionCode](rules/SubdivisionCode.md)
- [Subset](rules/Subset.md)
- [SymbolicLink](rules/SymbolicLink.md)
- [Templated](rules/Templated.md)
- [Time](rules/Time.md)
- [Tld](rules/Tld.md)
- [TrueVal](rules/TrueVal.md)
- [Type](rules/Type.md)
- [Undef](rules/Undef.md)
- [UndefOr](rules/UndefOr.md)
- [Unique](rules/Unique.md)
- [Uploaded](rules/Uploaded.md)
- [Uppercase](rules/Uppercase.md)
- [Url](rules/Url.md)
- [Uuid](rules/Uuid.md)
- [Version](rules/Version.md)
- [VideoUrl](rules/VideoUrl.md)
- [Vowel](rules/Vowel.md)
- [When](rules/When.md)
- [Writable](rules/Writable.md)
- [Xdigit](rules/Xdigit.md)
- [Yes](rules/Yes.md)
- [All](validators/All.md)
- [AllOf](validators/AllOf.md)
- [Alnum](validators/Alnum.md)
- [Alpha](validators/Alpha.md)
- [AlwaysInvalid](validators/AlwaysInvalid.md)
- [AlwaysValid](validators/AlwaysValid.md)
- [AnyOf](validators/AnyOf.md)
- [ArrayType](validators/ArrayType.md)
- [ArrayVal](validators/ArrayVal.md)
- [Attributes](validators/Attributes.md)
- [Base](validators/Base.md)
- [Base64](validators/Base64.md)
- [Between](validators/Between.md)
- [BetweenExclusive](validators/BetweenExclusive.md)
- [Blank](validators/Blank.md)
- [BoolType](validators/BoolType.md)
- [BoolVal](validators/BoolVal.md)
- [Bsn](validators/Bsn.md)
- [Call](validators/Call.md)
- [CallableType](validators/CallableType.md)
- [Callback](validators/Callback.md)
- [Charset](validators/Charset.md)
- [Circuit](validators/Circuit.md)
- [Cnh](validators/Cnh.md)
- [Cnpj](validators/Cnpj.md)
- [Consonant](validators/Consonant.md)
- [Contains](validators/Contains.md)
- [ContainsAny](validators/ContainsAny.md)
- [Control](validators/Control.md)
- [Countable](validators/Countable.md)
- [CountryCode](validators/CountryCode.md)
- [Cpf](validators/Cpf.md)
- [CreditCard](validators/CreditCard.md)
- [CurrencyCode](validators/CurrencyCode.md)
- [Date](validators/Date.md)
- [DateTime](validators/DateTime.md)
- [DateTimeDiff](validators/DateTimeDiff.md)
- [Decimal](validators/Decimal.md)
- [Digit](validators/Digit.md)
- [Directory](validators/Directory.md)
- [Domain](validators/Domain.md)
- [Each](validators/Each.md)
- [Email](validators/Email.md)
- [Emoji](validators/Emoji.md)
- [EndsWith](validators/EndsWith.md)
- [Equals](validators/Equals.md)
- [Equivalent](validators/Equivalent.md)
- [Even](validators/Even.md)
- [Executable](validators/Executable.md)
- [Exists](validators/Exists.md)
- [Extension](validators/Extension.md)
- [Factor](validators/Factor.md)
- [FalseVal](validators/FalseVal.md)
- [Falsy](validators/Falsy.md)
- [Fibonacci](validators/Fibonacci.md)
- [File](validators/File.md)
- [FilterVar](validators/FilterVar.md)
- [Finite](validators/Finite.md)
- [FloatType](validators/FloatType.md)
- [FloatVal](validators/FloatVal.md)
- [Graph](validators/Graph.md)
- [GreaterThan](validators/GreaterThan.md)
- [GreaterThanOrEqual](validators/GreaterThanOrEqual.md)
- [Hetu](validators/Hetu.md)
- [HexRgbColor](validators/HexRgbColor.md)
- [Iban](validators/Iban.md)
- [Identical](validators/Identical.md)
- [Image](validators/Image.md)
- [Imei](validators/Imei.md)
- [In](validators/In.md)
- [Infinite](validators/Infinite.md)
- [Instance](validators/Instance.md)
- [IntType](validators/IntType.md)
- [IntVal](validators/IntVal.md)
- [Ip](validators/Ip.md)
- [Isbn](validators/Isbn.md)
- [IterableType](validators/IterableType.md)
- [IterableVal](validators/IterableVal.md)
- [Json](validators/Json.md)
- [Key](validators/Key.md)
- [KeyExists](validators/KeyExists.md)
- [KeyOptional](validators/KeyOptional.md)
- [KeySet](validators/KeySet.md)
- [LanguageCode](validators/LanguageCode.md)
- [Lazy](validators/Lazy.md)
- [LeapDate](validators/LeapDate.md)
- [LeapYear](validators/LeapYear.md)
- [Length](validators/Length.md)
- [LessThan](validators/LessThan.md)
- [LessThanOrEqual](validators/LessThanOrEqual.md)
- [Lowercase](validators/Lowercase.md)
- [Luhn](validators/Luhn.md)
- [MacAddress](validators/MacAddress.md)
- [Max](validators/Max.md)
- [Mimetype](validators/Mimetype.md)
- [Min](validators/Min.md)
- [Multiple](validators/Multiple.md)
- [Named](validators/Named.md)
- [Negative](validators/Negative.md)
- [NfeAccessKey](validators/NfeAccessKey.md)
- [Nif](validators/Nif.md)
- [Nip](validators/Nip.md)
- [No](validators/No.md)
- [NoneOf](validators/NoneOf.md)
- [Not](validators/Not.md)
- [NullOr](validators/NullOr.md)
- [NullType](validators/NullType.md)
- [Number](validators/Number.md)
- [NumericVal](validators/NumericVal.md)
- [ObjectType](validators/ObjectType.md)
- [Odd](validators/Odd.md)
- [OneOf](validators/OneOf.md)
- [PerfectSquare](validators/PerfectSquare.md)
- [Pesel](validators/Pesel.md)
- [Phone](validators/Phone.md)
- [PhpLabel](validators/PhpLabel.md)
- [Pis](validators/Pis.md)
- [PolishIdCard](validators/PolishIdCard.md)
- [PortugueseNif](validators/PortugueseNif.md)
- [Positive](validators/Positive.md)
- [PostalCode](validators/PostalCode.md)
- [PrimeNumber](validators/PrimeNumber.md)
- [Printable](validators/Printable.md)
- [Property](validators/Property.md)
- [PropertyExists](validators/PropertyExists.md)
- [PropertyOptional](validators/PropertyOptional.md)
- [PublicDomainSuffix](validators/PublicDomainSuffix.md)
- [Punct](validators/Punct.md)
- [Readable](validators/Readable.md)
- [Regex](validators/Regex.md)
- [ResourceType](validators/ResourceType.md)
- [Roman](validators/Roman.md)
- [ScalarVal](validators/ScalarVal.md)
- [Size](validators/Size.md)
- [Slug](validators/Slug.md)
- [Sorted](validators/Sorted.md)
- [Space](validators/Space.md)
- [Spaced](validators/Spaced.md)
- [StartsWith](validators/StartsWith.md)
- [StringType](validators/StringType.md)
- [StringVal](validators/StringVal.md)
- [SubdivisionCode](validators/SubdivisionCode.md)
- [Subset](validators/Subset.md)
- [SymbolicLink](validators/SymbolicLink.md)
- [Templated](validators/Templated.md)
- [Time](validators/Time.md)
- [Tld](validators/Tld.md)
- [TrueVal](validators/TrueVal.md)
- [Type](validators/Type.md)
- [Undef](validators/Undef.md)
- [UndefOr](validators/UndefOr.md)
- [Unique](validators/Unique.md)
- [Uploaded](validators/Uploaded.md)
- [Uppercase](validators/Uppercase.md)
- [Url](validators/Url.md)
- [Uuid](validators/Uuid.md)
- [Version](validators/Version.md)
- [VideoUrl](validators/VideoUrl.md)
- [Vowel](validators/Vowel.md)
- [When](validators/When.md)
- [Writable](validators/Writable.md)
- [Xdigit](validators/Xdigit.md)
- [Yes](validators/Yes.md)

View file

@ -1,6 +1,6 @@
# Comparing empty values
The [Undef](rules/Undef.md), [Blank](rules/Blank.md), and [Falsy](rules/Falsy.md) validators all validate "empty-like" values, but they differ in strictness and use cases. This guide helps you understand when to use each one.
The [Undef](validators/Undef.md), [Blank](validators/Blank.md), and [Falsy](validators/Falsy.md) validators all validate "empty-like" values, but they differ in strictness and use cases. This guide helps you understand when to use each one.
## Quick Comparison
@ -133,7 +133,7 @@ Choose the validator based on what you consider "empty":
See also:
- [Undef](rules/Undef.md)
- [Blank](rules/Blank.md)
- [Falsy](rules/Falsy.md)
- [NullType](rules/NullType.md)
- [Undef](validators/Undef.md)
- [Blank](validators/Blank.md)
- [Falsy](validators/Falsy.md)
- [NullType](validators/NullType.md)

View file

@ -7,7 +7,7 @@ Validates the PHP attributes defined in the properties of the input.
Example of object:
```php
use Respect\Validation\Rules as Validator;
use Respect\Validation\Validators as Validator;
#[Validator\AnyOf(
new Validator\Property('email', new Validator\Not(new Validator\Undef())),

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