respect-validation/docs/rules/Domain.md
Henrique Moody cd2390a9b0
Refactor "Domain" rule
The "Domain" rule duplicates a lot of its logic among the methods
"check()," "validate()," and "assert()." Such duplication makes it hard
to maintain and hard to understand.

Besides that:

- It triggers a PHP error when trying to validate a non-scalar value;

- It does not show the exceptions in the correct hierarchy;

- It allows to change the TLD validation after to object is created.

This commit will fix those issues and create better tests for the rule.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2019-04-05 18:57:22 +02:00

1.2 KiB

Domain

  • Domain()
  • Domain(bool $tldCheck)

Validates whether the input is a valid domain name or not.

v::domain()->validate('google.com');

You can skip top level domain (TLD) checks to validate internal domain names:

v::domain(false)->validate('dev.machine.local');

This is a composite validator, it validates several rules internally:

  • If input is an IP address, it fails.
  • If input contains whitespace, it fails.
  • If input does not contain any dots, it fails.
  • If input has less than two parts, it fails.
  • Input must end with a top-level-domain to pass (if not skipped).
  • Each part must be alphanumeric and not start with an hyphen.
  • PunnyCode is accepted for Internationalizing Domain Names in Applications.

Messages for this validator will reflect rules above.

Changelog

Version Description
0.6.0 Allow to skip TLD check
0.3.9 Created

See also: