omnilight/yii2-sypexgeo

此包最新版本(1.0.0)的许可证信息不可用。

用于 Sypex Geo API(http://sypexgeo.net)的 Yii2 扩展

安装次数: 92,024

依赖者: 0

建议者: 0

安全: 0

星标: 18

关注者: 4

分支: 9

开放问题: 1

类型:yii2-extension

1.0.0 2014-12-02 13:55 UTC

This package is auto-updated.

Last update: 2024-09-16 04:23:05 UTC


README

本扩展为 Yii2 框架添加了对 Sypex Geo 的支持

注意:这不是 JiSoft/yii2-sypexgeo(https://github.com/JiSoft/yii2-sypexgeo)的分支!

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

php composer.phar require --prefer-dist omnilight/yii2-sypexgeo "*"

或将其添加到你的 composer.json 文件的 require 部分:

"omnilight/yii2-sypexgeo": "*"

这是关于什么的?

Sypex Geo - 通过 IP 地址定位的产品。通过获取 IP 地址,Sypex Geo 可以输出访问者的位置信息 - 国家、地区、城市、地理坐标等,包括俄语和英语。Sypex Geo 使用本地紧凑的二进制数据库文件,运行速度非常快。更多信息请访问: http://sypexgeo.net/

这是为 Yii2 框架设计的扩展,可以轻松处理 Sypex Geo。

使用方法

不幸的是,Sypex Geo 的原始版本不支持 Composer 安装,因此我们必须将其包含在本扩展中。

首先,您需要从 http://sypexgeo.net/ 网站下载所需的数据库并将其放置在您的服务器上的某个位置。

本扩展中有两个类。

Sypexgeo - 这是一个可以根据 IP 地址检索地理信息的组件。该组件封装了对 SxGeo 方法的调用。

您可以使用它作为应用程序组件

// config.php
[
    'components' => [
        'sypexGeo' => [
            'class' => 'omnilight\sypexgeo\SypexGeo',
            'database' => '@app/data/SxGeoCity.dat',
        ]
    ]
]

// somewhere in your code
$city = Yii::$app->sypexGeo->getCity($ip);

您也可以自己创建实例

$sypexGeo = new omnilight\sypexgeo\Sypexgeo([
    'database' => '@app/data/SxGeoCity.dat',
]);
$city = $sypexGeo->getCity($ip);

GeoBehavior - 可以附加到 yii\web\Request 或其子类的行为,此类为获取当前请求的地理信息添加了方法。

示例

// config.php
[
    'components' => [
        'request' => [
            'as sypexGeo' => [
                'class' => 'omnilight\sypexgeo\GeoBehavior',
                // It is not required to define property sypexGeo if you have sypexGeo component defined
                // in your application
                'sypexGeo' => [
                    'database' => '@app/data/SxGeoCity.dat',
                ]
            ]
        ]
    ],
]

// In your code
$city = Yii::$app->request->getCity();