【问题标题】:How to use MaxMind's GeoIp2 in PHP with another autoloader?如何在 PHP 中将 MaxMind 的 GeoIp2 与另一个自动加载器一起使用?
【发布时间】:2017-01-07 16:38:45
【问题描述】:

我安装了 MaxMind 的 GeoIp2 => https://github.com/maxmind/MaxMind-DB-Reader-php

还有 php 扩展 https://github.com/maxmind/libmaxminddb 以加快查找速度

当我像这样使用它时一切正常:

require_once '/pathto/Composer/vendor/autoload.php';
use GeoIp2\Database\Reader;

$reader = new Reader('/pathto/GeoLite2-Country.mmdb');
$record = $reader->country('8.8.4.4');

当我尝试在我也使用自己的自动加载器的同一个 php 文件上使用它时,问题就开始了:

function __autoload($class_name) {
  $p = explode("\\", $class_name);
  require_once 'pathto/'.$p[2].'.class.php';
}

这 2 个自动加载器似乎相互碰撞,实际上我不能在与我的类混合的文件中使用 GeoIp2。

我该如何解决这个烦人的问题? 非常感谢您。

【问题讨论】:

标签: php namespaces maxmind geoip2


【解决方案1】:

问题已通过以下方式解决:

spl_autoload_register();

这是一个简单的例子:

function base_autoload($class_name) {

  $p = explode("\\", $class_name);
  require_once '/mydir/'.$p[2].'.class.php';

}

spl_autoload_register('base_autoload');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 2010-12-22
    • 1970-01-01
    • 2017-02-02
    • 2016-06-19
    • 1970-01-01
    • 2013-10-25
    • 2015-06-27
    相关资源
    最近更新 更多