marvinlabs/laravel-luhn is a laravel package providing various Laravel utilities to work with the
Luhn algorithm such as:
- a few validation rules
- dependency injection
- facade
The Luhn algorithm is used widely to verify that numbers are valid: credit card numbers, SIREN company codes, etc.
You can install the package via composer:
composer require marvinlabs/laravel-luhnIf you are using Laravel 5.5, the service provider and facade will automatically be discovered.
On earlier versions, you need to do that manually. You must install the service provider:
// config/app.php
'providers' => [
...
MarvinLabs\Luhn\LuhnServiceProvider::class
];And optionally register an alias for the facade.
// config/app.php
'aliases' => [
...
'Luhn' => MarvinLabs\Luhn\Facades\Luhn::class,
];The package provides an implementation to the algorithm interface defined in \MarvinLabs\Luhn\Contracts\LuhnAlgorithm.
The contract provides 3 public methods to:
- Check if an input string is valid according to the Luhn algorithm
- Compute the check digit to append to a string in order to make it valid
- Compute the checksum according to the Luhn algorithm
A facade is provided to access the Luhn algorithm implementation.
Luhn::isValid('1234');
Luhn::computeCheckDigit('1234');
Luhn::computeCheckSum('1234');You can get an implementation of the Luhn algorithm at any time using the Laravel container.
$luhn = app(\MarvinLabs\Luhn\Contracts\LuhnAlgorithm::class); // Using the interface
$luhn = app('luhn'); // This shortcut works too, up to you ;)The package provides custom rules to validate a string.
$validator = Validator::make($data, [
'number1' => 'luhn', // Using shorthand notation
'number2' => new LuhnRule(), // Using custom rule class
]);See the dedicated change log
- Got some ideas from nekman/luhn-algorithm
The MIT License (MIT). Please see License File for more information.