mente/max-mind-geo-ip-bundle

该包已被废弃,不再维护。作者建议使用 gpslab/geoip 包。

将 MaxMind GeoIP 数据库集成到 symfony 应用程序中的包

0.3.1 2017-12-06 20:20 UTC

This package is auto-updated.

Last update: 2020-10-26 19:11:00 UTC


README

已废弃 请使用 gpslab/geoip。它支持现代的 Symfony 和 PHP 版本,并且代码质量更好。

Insomnia MaxGeoIp Bundle

Build Status

安装

此包帮助您在 symfony 应用程序中实现 MaxMind GeoIp 功能。基于 MaxMind 库。安装方式与其他包相同

composer require mente/max-mind-geo-ip-bundle *

别忘了将包添加到您的应用程序内核

<?php
    // app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new \Insomnia\MaxMindGeoIpBundle\InsomniaMaxMindGeoIpBundle(),
        );
    }

配置相当直观

insomnia_max_mind_geo_ip:
    #Path to geolite2 database. Default is %kernel.root_dir%/GeoIpCountry.mmdb
    path: %kernel.root_dir%/geolite2.mmdb

设置完代码后,是时候更新最新的 MaxMind 数据库了

#If you want to use country-precision
php app/console insomnia:geoip:update http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
#OR
#If you want to use city-precision
#Keep in mind that city-precision database is bigger and it takes a bit longer time to find it by ip.
php app/console http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz

命令将保存并解压数据库到配置中指定的位置。所以您无需担心正确的放置。

提示:如果您想自动化数据库更新,可以使用提供的脚本处理程序将其集成到 composer 安装/更新阶段。将以下内容添加到您的 composer.json

"scripts": {
    "post-install-cmd": [
        "Insomnia\\MaxMindGeoIpBundle\\Composer\\ScriptHandler::downloadMaxMindDB"
    ],
    "post-update-cmd": [
        "Insomnia\\MaxMindGeoIpBundle\\Composer\\ScriptHandler::downloadMaxMindDB"
    ]
},
"extra": {
    "maxmind-db-path": "app/geolite2.mmdb"
}

需要额外的部分 maxmind-db-path,并且应该与 symfony 配置中的 insomnia_max_mind_geo_ip.path 相同。就是这样!您可以开始使用了

使用方法

该包暴露了 2 个服务:insomnia_max_mind_geo_ipinsomnia_max_mind_geo_ip_service。前者是 MaxMind 纯数据库读取器本身,后者是在它周围的一个薄封装,包含几个有用的方法。完整的函数集合请查看 Insomnia\MaxMindGeoIpBundle\Service\GeoIpService