myerscode / laravel-domain-validator
Validate Domains names in Laravel using PHP Domain Parser.
Requires
- php: ^8.2
- ext-intl: *
- guzzlehttp/guzzle: ^7.2
- illuminate/config: ^11.0
- illuminate/support: ^11.0
- jeremykendall/php-domain-parser: ^6.2
Requires (Dev)
- orchestra/testbench: v9.0.3
- phpunit/phpunit: ^11.0
README
A Laravel package for validating domain properties
Why is this useful?
It allows easy integration of the PHP Domain Parser PHP Domain Parser by Jeremy Kendall into a Laravel app, in order to validate values against known
Installation
The package can be installed via composer:
composer require myerscode/laravel-domain-validator
Usage
Fetch data sets
artisan domain-validator:cache
Cache the fetched data sets
artisan domain-validator:cache
Do both together!
artisan domain-validator:refresh
Scheduling
It is recommended to schedule the refresh command, in order to remove the need of running the domain-validator:refresh
command
every time you need to update your cache.
Keeping the sources of truth (the )
// routes/console.php Schedule::call('domain-validator:refresh')->daily(); // alternatively initialize a new command class Schedule::call(new \Myerscode\Laravel\DomainValidator\Commands\RefreshCommand)->daily();
Checks
Note: For developer experience, all strings passed will be sanitized to remove trailing slashes /
and http(s)://
.
Is the value recognized valid a valid TLD suffix recognized by the Internet Corporation for Assigned Names and Numbers (ICANN) as....
Has ICANN Suffix
Tells whether the effective TLD has a matching rule in a Public Suffix List ICANN Section.
hasICANNSuffix('myerscode.com') // true hasICANNSuffix('cloudfront.net') // false
Has Known Suffix
Tells whether the effective TLD has a matching rule in a Public Suffix List.
For more information i go to the Public Suffix section
hasKnownSuffix('myerscode.co') // true hasKnownSuffix('myerscode.corgi') // false
Has Private Suffix
Tells whether the effective TLD has a matching rule in a Public Suffix List Private Section.
hasPrivateSuffix('myerscode.cloudfront.net') // true hasPrivateSuffix('cloudfront.net') // false
Is Domain
Is the value parseable as to a valid domain
isDomain('myerscode.com') // true isDomain('.com') // false
Is TLD
Is the value a valid Top Level Domain
isTld('.com') // true isTld('.corgi') // false
Issues
Bug reports and feature requests can be submitted on the Github Issue Tracker.
Contributing
We are very happy to receive pull requests to add functionality or fixes. Please read the Myerscode contributing guide for information.
License
The MIT License (MIT). Please see License File for more information.