showapp / tld-database
公共后缀列表的数据库抽象
dev-master
2023-02-17 11:36 UTC
Requires
- php: 8.*
- ext-curl: *
- showapp/tld-support: dev-master
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mikey179/vfsstream: ^1.6
- phpmd/phpmd: @stable
- phpunit/phpunit: ^4.8 || ^5.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-17 15:44:17 UTC
README
请使用 https://github.com/jeremykendall/php-domain-parser。
TLDDatabase
PHP中公共后缀列表的抽象层。由TLDExtract使用。
库的主要思想是提供对公共后缀列表实际数据库的简单快速访问。库始终附带实际数据库。
此软件包符合PSR-1、PSR-2、PSR-4规范。如果您发现规范遵守上的疏忽,请通过拉取请求发送补丁。
要求
以下版本的PHP受支持:
- PHP 5.5
- PHP 5.6
- PHP 7.0
- PHP 7.1
- HHVM
基本用法
首先,您需要加载Store类。
$store = new \LayerShifter\TLDDatabase\Store();
要检查数据库中是否存在条目,您需要使用isExists方法
$store->isExists(string $suffix) : bool; $store->isExists('com'); // true $store->isExists('comcom'); // false
注意:后缀不得以点开头。
要获取后缀的类型,您需要使用getType方法
要检查数据库中是否存在条目,您需要使用isExists方法
$store->isExists(string $suffix): int; $store->getType('com'); // \LayerShifter\TLDDatabase\Store::TYPE_ICANN = 1 $store->getType('s3.amazonaws.com'); // \LayerShifter\TLDDatabase\Store::TYPE_PRIVATE = 2
如果条目不存在,方法将抛出异常,否则将返回整数常量之一
\LayerShifter\TLDDatabase\Store::TYPE_ICANN;\LayerShifter\TLDDatabase\Store::TYPE_PRIVATE;
要直接检查类型,您可以使用isICANN或isPrivate方法。
$store->isICANN(string $suffix) : bool; $store->isICANN'com'); // true $store->isICANN('s3.amazonaws.com'); // false $store->isPrivate(string $suffix) : bool; $store->isPrivate('com'); // false $store->isPrivate('s3.amazonaws.com'); // true
高级用法
为开发者提供了一些酷炫的功能。
自定义数据库
如果您需要操作自定义(非打包)数据库,只需向Store构造函数添加参数即可。
$store = new \LayerShifter\TLDDatabase\Store(string $filename); $store = new \LayerShifter\TLDDatabase\Store(__DIR__ . '/cache/datatabase.php');
更新
如果您使用自定义数据库,则需要更新它😉 因此,您可以使用Update类。
$update = new \LayerShifter\TLDDatabase\Update(string $filename); $update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php'); $update->run();
HTTP适配器
基本上,库使用cURL适配器进行更新,但您可以使用自定义适配器。
class customHttp implements \LayerShifter\TLDDatabase\Http\AdapterInterface { public function get() {} } $update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php', 'customHttp'); $update->run();
安装
通过Composer
$ composer require layershifter/tld-database
测试
$ composer test
版本控制
库使用SemVer版本控制。其中
- 主版本进行不兼容API更改;
- 次版本添加功能,完全向后兼容;
- 补丁是更新从公共后缀列表的数据库。
数据库每周更新一次。
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
许可证
此库在Apache 2.0许可证下发布。有关更多信息,请参阅许可证文件。
