【发布时间】: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。
我该如何解决这个烦人的问题? 非常感谢您。
【问题讨论】:
-
我记得 MaxMind 是 PSR-4。请与您的作曲家自动加载器确认。这应该可以帮助你。 github.com/php-fig/fig-standards/blob/master/accepted/…
-
是的,谢谢。实际上,根据您的评论,我终于找到了完全使用 PSR 4 的解决方案。谢谢。
标签: php namespaces maxmind geoip2