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

标签 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。

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

最佳答案

问题已通过使用解决:

spl_autoload_register();

这是一个简单的例子:
function base_autoload($class_name) {

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

}

spl_autoload_register('base_autoload');

关于php - 如何在 PHP 中使用 MaxMind 的 GeoIp2 和另一个自动加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243670/

相关文章:

php - 带有 if 子句的 Symfony2 session-flash 在 twig 中不起作用

javascript - 使用 PHP 排除 javascript/白名单 IP

database - 如何查看.mmdb 文件内容?

php - 使用 php mysql ajax jquery 创建对 friend 系统的接受或拒绝操作

php - 如何将今天的日期添加到 .htaccess 日志文件名

c++ - 在命名空间中包含实现文件以避免名称冲突

javascript - 从命名空间调用方法以在另一个 javascript 文件中使用

c++ - 在匿名命名空间中定义模板特化(和编译错误 C2888)

sitecore - 在 Sitecore 中根据访问者的 GEOIP 覆盖上下文语言?

来自循环的 php mysql 查询 - 确定哪些表行不在循环中