konyvleltar/vendor/biblys/isbn
2021-12-20 12:50:53 +01:00
..
.github/workflows initial commit 2021-12-20 12:50:53 +01:00
bin initial commit 2021-12-20 12:50:53 +01:00
src/Biblys/Isbn initial commit 2021-12-20 12:50:53 +01:00
tests initial commit 2021-12-20 12:50:53 +01:00
.gitignore initial commit 2021-12-20 12:50:53 +01:00
.gitpod.yml initial commit 2021-12-20 12:50:53 +01:00
composer.json initial commit 2021-12-20 12:50:53 +01:00
LICENSE initial commit 2021-12-20 12:50:53 +01:00
README.md initial commit 2021-12-20 12:50:53 +01:00

biblys/isbn

tests Latest Stable Version Total Downloads License Gitpod ready-to-code

biblys/isbn can be used to:

  • validate a string against the ISBN-10, ISBN-13 and EAN-13 formats
  • convert an ISBN to ISBN-10, ISBN-13, EAN-13 and GTIN-14 formats
  • parse an ISBN and extract registration agency, publisher code, publication code, checksum, etc.

CHANGELOG

Installation

Install with composer:

composer require biblys/isbn:^2.4.0

Usage

Convert

Use case: converting an EAN (9782843449499) to an ISBN-13 (978-2-84344-949-9).

<?php

use Biblys\Isbn\Isbn;

try {
    $input = "9782843449499";
    $isbn13 = Isbn::convertToIsbn13($input);
    echo "ISBN-13: $isbn13"; // Prints ISBN-13: 978-2-84344-949-9
} catch(Exception $e) {
    echo "An error occurred while attempting to format ISBN $input: ".$e->getMessage();
}

All formatting methods:

  • Isbn::convertToIsbn10
  • Isbn::convertToIsbn13
  • Isbn::convertToEan13
  • Isbn::convertToGtin14

Validate

Use case: validating an incorrectly formed ISBN-13 (978-2-843-44949-9, should be 978-2-84344-949-9).

<?php

use Biblys\Isbn\Isbn;

try {
    $input = "978-2-843-44949-9";
    Isbn::validateAsIsbn13($input);
    echo "ISBN $input is valid!";
} catch(Exception $e) { // Will throw because third hyphen is misplaced
    echo "ISBN $input is invalid: ".$e->getMessage();
}

All validating methods:

  • Isbn::validateAsIsbn10
  • Isbn::validateAsIbsn13
  • Isbn::validateAsEan13
  • Isbn::isParsable

Learn more about validating ISBNs

Development

Using Gitpod

You can start a dev environment by clicking Gitpod ready-to-code and start hacking in your browser right away!

Locally

If you'd rather set up a local dev environment, you'll need:

  • PHP 7.x
  • Composer
  • (Optional) Docker to run tests and debug against different version of PHP

Clone this repository and run composer install to get started!

Tests

Run tests with PHPUnit:

composer install
composer test

Run tests in a docker container:

composer docker:test

Run tests in a docker container using a specific PHP version:

PHP_VERSION=7.1 composer docker:test

ISBN ranges update

New ISBN ranges may be added from time to time by the International ISBN Agency. Whenever it happens, this library must be updated. If a range update is necessary, please open an issue on GitHub. You can also open a pull request after updating the ranges your self with the following commands:

composer install
composer run update-ranges

Or using a docker container:

composer docker:update-ranges

Changelog

See GitHub releases