omnilight / yii2-sypexgeo
此包最新版本(1.0.0)的许可证信息不可用。
用于 Sypex Geo API(http://sypexgeo.net)的 Yii2 扩展
1.0.0
2014-12-02 13:55 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
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();