juststeveking/gtin-php

A PHP package for validating GTIN codes

Fund package maintenance!
JustSteveKing

v1.0.1 2021-01-13 14:26 UTC

This package is auto-updated.

Last update: 2024-03-11 20:15:24 UTC


README

Software License PHP Version Latest Version on Packagist Tests Scrutinizer Code Quality Total Downloads

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.