Я установил MaxMind’s 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 в файле, смешанном с моими классами.
Как я могу решить эту надоедливую проблему?
Огромное спасибо заранее.
Проблема была решена с помощью:
spl_autoload_register();
Вот простой пример:
function base_autoload($class_name) {
$p = explode("\\", $class_name);
require_once '/mydir/'.$p[2].'.class.php';
}
spl_autoload_register('base_autoload');
Других решений пока нет …