eseath/sypexgeo

一个用于操作 SypexGeo 数据库文件的 PHP 扩展包。

v2.3.2 2024-02-10 11:55 UTC

This package is auto-updated.

Last update: 2024-09-10 13:08:56 UTC


README

Minimum PHP Version Latest stable version Build Status

一个用于操作 SypexGeo 数据库文件的 PHP 扩展包。

当前版本支持 Laravel 5.1 及以上版本。

安装

composer require eseath/sypexgeo

对于非 Laravel 项目,您需要手动下载数据库文件

数据库每月更新 2 次。

设置

Laravel

1. 如果 Laravel 版本 <= 5.4,请在 config/app.php 中添加

    'providers' => [
        \Eseath\SxGeo\SxGeoServiceProvider::class,
    ]

2. 发布配置 sxgeo.php(可选)

php artisan vendor:publish --provider="Eseath\SxGeo\SxGeoServiceProvider"

默认情况下,在配置中指定城市数据库的 URL。如果您需要国家数据库,请更改 URL

...
    'dbFileURL' => 'https://sypexgeo.net/files/SxGeoCountry.zip',
...

3. 下载数据库文件

php artisan sxgeo:update

您可以使用以下命令通过 CRON 升级数据库到当前版本。

使用方法

use Eseath\SxGeo\SxGeo;

$sxGeo = new SxGeo('/path/to/database/file.dat');
$fullInfo  = $sxGeo->getCityFull($ip);
$briefInfo = $sxGeo->get($ip);

与 Laravel 一起使用

use SxGeo;

$data = SxGeo::getCityFull($ip);

示例数据

array:3 [▼
    "city" => array:5 [▼
        "id" => 524901
        "lat" => 55.75222
        "lon" => 37.61556
        "name_ru" => "Москва"
        "name_en" => "Moscow"
    ]
    "region" => array:4 [▼
        "id" => 524894
        "name_ru" => "Москва"
        "name_en" => "Moskva"
        "iso" => "RU-MOW"
    ]
    "country" => array:6 [▼
        "id" => 185
        "iso" => "RU"
        "lat" => 60
        "lon" => 100
        "name_ru" => "Россия"
        "name_en" => "Russia"
    ]
]
array:2 [▼
    "city" => array:5 [▼
        "id" => 524901
        "lat" => 55.75222
        "lon" => 37.61556
        "name_ru" => "Москва"
        "name_en" => "Moscow"
    ]
    "country" => array:2 [▼
        "id" => 185
        "iso" => "RU"
    ]
]

运行测试

测试由 Travis CI 在多个 PHP 和 Laravel 版本上自动运行。

如果您想在本地上运行测试,请使用以下命令

python3 ./test.py

开发

docker-compose run php-7.1 composer install