midnite81 / geolocation
一个封装了 IP Info DB 和 IP2Location 服务的 Laravel 扩展包
Requires
- php: >=8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- midnite81/core: ^1.0
Requires (Dev)
- laravel/pint: ^1.1
- mockery/mockery: ^1.0
- orchestra/testbench: ^6.3
- pestphp/pest: ^1.21
- pestphp/pest-plugin-parallel: ^1.2
- php-coveralls/php-coveralls: ^2.4
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.4
- squizlabs/php_codesniffer: ^3.5
README
一个用于 Laravel 的 IP Info DB 集成
版本控制
升级到 v4.0
请注意
- 版本 4 引入了封装 IpInfoDb 服务(与先前版本相同)和 Ip2Location 服务的能力。IpInfoDb 不再接受新注册,并要求用户在 Ip2Location 进行注册。
- 版本 4 的最低要求是 php 8.1,以便利用 php 8.1 带来的附加功能,例如枚举和更好的类型安全性。
- 版本 4 有一个更新的配置文件。如果您正在升级,我建议查看 配置文件 并更新您本地实例。
- 将缓存从分钟改为秒。
安装
如果要在低于 PHP 8.1 的系统上安装,请检查 v2 或 v3 分支,并遵循该分支的说明文件。请注意,此包的先前版本不支持 ip2location。
此包需要 PHP 8.1+,并包含 Laravel 服务提供者。
要通过 composer 安装,请将包包含在您的 composer.json
中。
"midnite81/geolocation": "^4.0"
运行 composer install
或 composer update
以下载依赖项,或者您也可以运行 composer require midnite81/geolocation
。
Laravel 集成
此包使用 Laravel 的自动包加载器,因此您不需要将其添加到您的 config/app.php 文件中。但是,如果您已禁用此功能,则需要在 app/config/app.php
中的服务提供者列表中添加 GeoLocation 服务提供者。
'providers' => [
Midnite81\GeoLocation\GeoLocationServiceProvider::class
];
使用 php artisan vendor:publish --provider="Midnite81\GeoLocation\GeoLocationServiceProvider"
发布配置和迁移文件。
配置文件
发布配置文件后,您将在 config
文件夹中找到一个 geolocation.php
文件。您应该查看这些设置,并在必要时进行更新。
环境变量
您需要将以下内容添加到您的 .env
文件中,并使用您的设置更新这些内容。请注意,您只需要填写您所使用的服务的 API 密钥。
GEOLOCATION_IPINFODB_API_KEY=<ip_info_db_api_key> GEOLOCATION_IP2LOCATION_API_KEY=<ip2location_api_key> GEOLOCATION_CACHE=<duration_in_seconds>
获取您的 GeoLocation API 密钥
在使用此包之前,您需要从以下任一服务获取 API 密钥:IpInfoDb(不再接受新注册)或 Ip2Location。
注册后,您需要将您的 API 密钥添加到相关的 .env
键中;对于 IpInfoDb 是 GEOLOCATION_IPINFODB_API_KEY
,对于 Ip2Location 是 GEOLOCATION_IP2LOCATION_API_KEY
。
缓存
此包允许您缓存响应,但是您有责任确保您不会违反任何使用条款和条件。
速率限制
此包内部不设置任何速率限制。您应确保您的应用程序遵守您选择的提供者设置的任何速率限制。