如何在PHP中使用MaxMind的GeoIp2和另一个自动加载器?

时间:2016-08-31 07:47:38

标签: php namespaces maxmind geoip2

我安装了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';
}

看起来这两个自动加载器相互冲突,实际上我不能在与我的类混合的文件中使用GeoIp2。

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

1 个答案:

答案 0 :(得分:0)

使用以下方法解决了问题:

spl_autoload_register();

这是一个简单的例子:

function base_autoload($class_name) {

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

}

spl_autoload_register('base_autoload');