juststeveking / gtin-php
A PHP package for validating GTIN codes
Fund package maintenance!
JustSteveKing
Installs: 32 706
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: ^7.4|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- illuminate/support: ^8.22
- orchestra/testbench: ^6.7
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.3
README
A PHP package for validating GTIN codes for use in plain PHP and in Laravel.
Installation
You can install the package via composer:
composer require juststeveking/gtin-php
Usage PHP
If you are using a framework other than Laravel, or Laravel itself - you can use the Gtin
class directly to validate aspects or the entire value passed in. You can check out the specifications for gtin and GS1 here.
Validating correct length
A GTIN is between 8 and 14 characters long.
use JustSteveKing\GtinPHP\Gtin; $correct = 614141999996; $valid = Gtin::length($correct); // returns true $incorrect = 123456; $failed = Gtin::length($incorrect); // returns false
Validating that it is an integer
A GTIN must be an integer value, in php you can easily use is_int()
however I have provided a method here to also do the same thing:
use JustSteveKing\GtinPHP\Gtin; $correct = 614141999996; $valid = Gtin::integer($correct); // returns true $incorrect = '614141999996'; $failed = Gtin::integer($incorrect); // returns false
Inspecting the gtin and validating the check digit
The GTIN is formatted in a very specific way, this is documented fully in the specificas document
use JustSteveKing\GtinPHP\Gtin; $correct = 614141999996; $valid = Gtin::inspect($correct); // returns true $incorrect = 123456789; $failed = Gtin::inspect($incorrect); // returns false
Validating all aspects in one go
use JustSteveKing\GtinPHP\Gtin; $correct = 614141999996; $valid = Gtin::validate($correct); // returns true $incorrect = 123456789; $failed = Gtin::validate($incorrect); // returns false
Validating in Laravel
There is a Laravel Rule as well as a validation macro that gets registered with this package, please use in one of the following ways:
// using the class directly public function rules() { return [ 'gtin' => [ 'required', new JustSteveKing\GtinPHP\Rules\Gtin, ] ]; }
// using the registered macro public function rules() { return [ 'gtin' => [ 'required', Rule::gtin(), ] ]; }
Feel free to use the Gtin
class directly if that is more convinient.
Testing
composer test
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.