nicebooks / isbn
ISBN 工具
Requires
- php: ^8.1
Requires (Dev)
- ext-dom: *
- brick/varexporter: ~0.4.0
- php-coveralls/php-coveralls: ^2.5.2
- phpunit/phpunit: ^10.3
- vimeo/psalm: 5.15.0
- dev-master
- 0.4.33
- 0.4.32
- 0.4.31
- 0.4.30
- 0.4.29
- 0.4.28
- 0.4.27
- 0.4.26
- 0.4.25
- 0.4.24
- 0.4.23
- 0.4.22
- 0.4.21
- 0.4.20
- 0.4.19
- 0.4.18
- 0.4.17
- 0.4.16
- 0.4.15
- 0.4.14
- 0.4.13
- 0.4.12
- 0.4.11
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.48
- 0.3.47
- 0.3.46
- 0.3.45
- 0.3.44
- 0.3.43
- 0.3.42
- 0.3.41
- 0.3.40
- 0.3.39
- 0.3.38
- 0.3.37
- 0.3.36
- 0.3.35
- 0.3.34
- 0.3.33
- 0.3.32
- 0.3.31
- 0.3.30
- 0.3.29
- 0.3.28
- 0.3.27
- 0.3.26
- 0.3.25
- 0.3.24
- 0.3.23
- 0.3.22
- 0.3.21
- 0.3.20
- 0.3.19
- 0.3.18
- 0.3.17
- 0.3.16
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.93
- 0.2.92
- 0.2.91
- 0.2.90
- 0.2.89
- 0.2.88
- 0.2.87
- 0.2.86
- 0.2.85
- 0.2.84
- 0.2.83
- 0.2.82
- 0.2.81
- 0.2.80
- 0.2.79
- 0.2.78
- 0.2.77
- 0.2.76
- 0.2.75
- 0.2.74
- 0.2.73
- 0.2.72
- 0.2.71
- 0.2.70
- 0.2.69
- 0.2.68
- 0.2.67
- 0.2.66
- 0.2.65
- 0.2.64
- 0.2.63
- 0.2.62
- 0.2.61
- 0.2.60
- 0.2.59
- 0.2.58
- 0.2.57
- 0.2.56
- 0.2.55
- 0.2.54
- 0.2.53
- 0.2.52
- 0.2.51
- 0.2.50
- 0.2.49
- 0.2.48
- 0.2.47
- 0.2.46
- 0.2.45
- 0.2.44
- 0.2.43
- 0.2.42
- 0.2.41
- 0.2.40
- 0.2.39
- 0.2.38
- 0.2.37
- 0.2.36
- 0.2.35
- 0.2.34
- 0.2.33
- 0.2.32
- 0.2.31
- 0.2.30
- 0.2.29
- 0.2.28
- 0.2.27
- 0.2.26
- 0.2.25
- 0.2.24
- 0.2.23
- 0.2.22
- 0.2.21
- 0.2.20
- 0.2.19
- 0.2.18
- 0.2.17
- 0.2.16
- 0.2.15
- 0.2.14
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.0
- dev-isbn_subclass
- dev-php81
This package is auto-updated.
Last update: 2024-09-19 22:39:53 UTC
README
此库提供了验证、格式化和转换ISBN号码的功能,该功能支持nicebooks.com网站。它遵循MIT开源许可协议,任何人都可以使用。
ISBN格式遵循ISBN国际发布的ISBN范围文件中定义的规则。
安装
此库可通过Composer安装
composer require nicebooks/isbn
要求
此库当前版本需要PHP 8.1或更高版本。
您可以使用较旧的PHP版本使用较早版本的
项目状态及发布流程
虽然此库仍在开发中,但它经过了充分的测试,应该足够稳定,可以在生产环境中使用。它目前正在nicebooks.com的生产环境中使用。
当前发布版本编号为0.x.y
。当引入非破坏性变更(更新ISBN范围、添加新方法、优化现有代码等)时,y
会递增。
当引入破坏性变更时,将始终开始一个新的0.x
版本周期。
因此,将您的项目锁定到给定的发布周期,例如0.4.*
是安全的。
如果您需要升级到较新的发布周期,请查看发布历史,以获取每个进一步的0.x.0
版本引入的变更列表。
概览
IsbnTools
类
此类包含处理ISBN号码的所有工具,作为普通字符串。
use Nicebooks\Isbn\IsbnTools; $tools = new IsbnTools();
其构造函数提供两个可配置参数
public function __construct(bool $cleanupBeforeValidate = true, bool $validateCheckDigit = true)
$cleanupBeforeValidate
在验证之前从字符串中删除任何非字母数字的ASCII字符。$validateCheckDigit
在执行任何操作之前计算ISBN号码的校验和。
方法摘要
-
isValidIsbn(string $isbn) : bool
检查给定的ISBN是否有效。var_export($tools->isValidIsbn('123456789X')); // true var_export($tools->isValidIsbn('9781234567897')); // true
-
isValidIsbn10(string $isbn) : bool
检查给定的ISBN是否是有效的ISBN-10。var_export($tools->isValidIsbn10('123456789X')); // true
-
isValidIsbn13(string $isbn) : bool
检查给定的ISBN是否是有效的ISBN-13。var_export($tools->isValidIsbn13('9781234567897')); // true
-
convertIsbn10to13(string $isbn) : string
将给定的ISBN-10转换为ISBN-13。var_export($tools->convertIsbn10to13('123456789X')); // '9781234567897'
-
convertIsbn13to10(string $isbn) : string
将给定的ISBN-13转换为ISBN-10。var_export($tools->convertIsbn13to10('9781234567897')); // '123456789X'
-
format(string $isbn) : string
通过在适当的位置添加连字符来格式化给定的ISBN。var_export($formatter->format('123456789X')); // '1-234-56789-X' var_export($formatter->format('9781234567897')); // '978-1-234-56789-7'
Isbn
类
Isbn
类是一个抽象的、不可变的类,表示有效的ISBN-10或ISBN-13。它是访问由IsbnTools
提供的功能的另一种方式,并提供了一种方便的方式来传递ISBN号码,保证其有效性和完整性。
Isbn
有两个子类:Isbn10
和Isbn13
,允许您的应用程序在某些情况下只期望ISBN-10或ISBN-13时进行更窄的类型化。
使用of()
工厂方法获得Isbn
实例
use Nicebooks\Isbn\Isbn; $isbn = Isbn::of('123456789X'); // will return an instance of Isbn10 $isbn = Isbn::of('9781234567897'); // will return an instance of Isbn13
您还可以使用Isbn10::of()
和Isbn13::of()
工厂方法
Isbn10::of('123456789X'); // equivalent to Isbn::of('123456789X')->to10(); Isbn13::of('9781234567897'); // equivalent to Isbn::of('9781234567897')->to13();
方法摘要
is10(): bool
对于ISBN-10返回true
,对于ISBN-13返回false
。is13(): bool
对于ISBN-13返回true
,对于ISBN-10返回false
。isConvertibleTo10(): bool
如果ISBN可以转换为ISBN-10,则返回true
,否则返回false
。to10(): Isbn10
将ISBN转换为ISBN-10,或抛出IsbnNotConvertibleException
异常。to13(): Isbn13
将ISBN转换为ISBN-13。format(): string
返回ISBN的格式化表示。
异常
异常位于Nicebooks\Isbn\Exception
命名空间。
InvalidIsbnException
在检测到无效ISBN时抛出。IsbnNotConvertibleException
在尝试将不以978
开头的ISBN-13转换为ISBN-10时抛出。