VIN (Vehicle Identification Number) validation and diagnostic library.
- Validates North American VIN numbers.
- Returns all possible years of manfacture for North American VIN numbers.
- Returns the country of manufacturer for VINs defined by ISO 3779.
- Supports custom readers for validating VINs outside of North America.
Install via composer:
composer require phillipsdata/vin
use PhillipsData\Vin\Number;
$vin = new Number('1M8GDM9AXKP042788');
$vin->valid(); // returns whether the VIN is valid
$vin->country(); // returns the ISO 3166 country code for the country of origin
$vin->number(); // returns the VIN number (e.g. 1M8GDM9AXKP042788)
$vin->year(); // returns an array of possible manufacturer years
You can supply your own VIN reader. This allows you to implement a VIN reader for vehicles manufactured in other countries (outside of North America).
use PhillipsData\Vin\Number;
$vin = new Number('1M8GDM9AXKP042788', new PhillipsData\Vin\Reader\NorthAmerica());
$reader = $vin->reader(); // returns instance of PhillipsData\Vin\Reader\ReaderInterface
We're interested in contributions that add additional PhillipsData\Vin\Reader\ReaderInterface
implementations for unsupported regions.
We'd also love for this library to support extracting Manufacturer (e.g. Ford, Chevrolet, etc.) based on the SAE's assignment of world manufacturer identifiers.