insign / dumb-emails-validator
Laravel validator for common email domain typos
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- illuminate/validation: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0|^10.0|^11.0
README
This package provides a custom validator for Laravel that checks for common typos in email domains.
Installation
-
Install the package via Composer:
composer require insign/laravel-dumb-emails-validator
-
Publish the config file (optional):
php artisan vendor:publish --provider="insign\DumbEmailsValidator\DumbEmailsValidatorServiceProvider"
Usage
Use the dumb_email
rule in your validation rules:
use Illuminate\Support\Facades\Validator; $validator = Validator::make($request->all(), [ 'email' => 'required|email|dumb_email', ]); if ($validator->fails()) { // Handle validation errors dd($validator->errors()); }
Customization
You can customize the list of domain corrections, and the error message in the config/dumb-emails.php
file.
return [ 'corrections' => [ 'gmal.com' => 'gmail.com', // Add your custom corrections here // ... ], 'message' => "Did you mean @:correct_domain?" // Change the default message, you can use :attribute and :correct_domain placeholders ];
The :attribute
placeholder will be replaced with the field name (e.g., "email"), and :correct_domain
will be replaced with the suggested correct domain.
**6. `LICENSE`**
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar sam@hocevar.net
Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- You just DO WHAT THE FUCK YOU WANT TO.
**How to Use in Your Laravel Project**
1. **Create the extension directory:** In your Laravel project's root, create a directory like `packages/your-vendor/laravel-dumb-emails-validator` (replace `your-vendor` with your vendor name, e.g., your GitHub username).
2. **Place the files:** Put the files from above (`src/`, `config/`, `README.md`, `LICENSE`) into the `laravel-dumb-emails-validator` directory.
3. **Composer:** In your project's main `composer.json`, add the following to the `autoload` section (under `psr-4`):
```json
"autoload": {
"psr-4": {
"App\\": "app/",
// ... other autoload entries
"insign\\DumbEmailsValidator\\": "packages/your-vendor/laravel-dumb-emails-validator/src"
}
},
```
And add in the `repositories` section:
```json
"repositories": [
{
"type": "path",
"url": "packages/your-vendor/laravel-dumb-emails-validator"
}
]
```
4. **Install:** Run `composer require your-vendor/laravel-dumb-emails-validator`
5. **Publish Config:** Run `php artisan vendor:publish --provider="insign\DumbEmailsValidator\DumbEmailsValidatorServiceProvider" --tag="config"`
6. **Register Service Provider:** Add the provider to your `config/app.php`:
```php
'providers' => [
// ...
insign\DumbEmailsValidator\DumbEmailsValidatorServiceProvider::class,
],
```
Now you can use the `dumb_email` validation rule as shown in the `README.md`. Remember to adjust the vendor name and namespaces as needed if you change them.