myerscode/laravel-domain-validator

Validate Domains names in Laravel using PHP Domain Parser.

11.1.1 2024-05-30 22:05 UTC

This package is auto-updated.

Last update: 2024-12-23 20:13:22 UTC


README

A Laravel package for validating domain properties

Latest Stable Version Total Downloads License Tests codecov

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.