marvinlabs/
laravel-luhn
g4t.io

Luhn Algorithm Package for Laravel

by Paul Redmond

Laravel Luhn is a package by Vincent Prat that provides utilities to ease validation and computation of credit cards, SIREN codes, and other use-cases for the L…

README from marvinlabs/laravel-luhn Open on GitHub →

Laravel Luhn

Latest Version on Packagist Software License Total Downloads Build Status

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.

Installation

You can install the package via composer:

composer require marvinlabs/laravel-luhn

If 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,
];

Usage

Algorithm implementation

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

Facade

A facade is provided to access the Luhn algorithm implementation.

Luhn::isValid('1234');
Luhn::computeCheckDigit('1234');
Luhn::computeCheckSum('1234');

Dependency injection

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 ;)

Validation

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
]);

Version history

See the dedicated change log

Credits

License

The MIT License (MIT). Please see License File for more information.

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News