- Notifications
You must be signed in to change notification settings - Fork4
Minimal, zero-dependency implementation of the Luhn Algorithm for PHP.
License
Ekman/luhn-algorithm
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a zero dependency implementation of the Luhn Algorithm for PHP 7.4 and above. The Luhn Algorithm is used to validate things like credit cards and national identification numbers. More information on the algorithm can be found atWikipedia.
Install withComposer:
composer require nekman/luhn-algorithm
In order to instantiate a new instance of the library, use the factory:
useNekman\LuhnAlgorithm\LuhnAlgorithmFactory;$luhn = LuhnAlgorithmFactory::create();
You can findthe library facade in theLuhnAlgorithmInterface.php
file.
TheNumber
class is a container class that holds the actual number and the check digit. It does no validation nor does it calculate the check digit. It exists to clearly separate the number from the check digit and to define when the check digit exists or not. To simplify the process of validating a number you can use the named constructorNumber::fromString()
like this:
useNekman\LuhnAlgorithm\Number;// Assume $creditCard is from a form.$number = Number::fromString($creditCard);if ($luhn->isValid($number)) {// Number is valid.}
Alternatively, if you want to calculate the checksum or check digit for a number:
useNekman\LuhnAlgorithm\Number;$number =newNumber(12345);$checksum =$luhn->calcChecksum($number);$checkDigit =$luhn->calcCheckDigit($number);
This project complies withSemantic Versioning.
For a complete list of changes, and how to migrate between major versions, seereleases page.
About
Minimal, zero-dependency implementation of the Luhn Algorithm for PHP.