Ответ 1
TL; DR
Класс MongoClient
является частью унаследованного пакета mongo PECL, но больше не является обновленным пакетом mongodb.
В PHP-драйвере MongoDB github repo в выпуске о версии 1.0.0 разработчикам предлагается использовать MongoDB\Driver\Manager
вместо MongoClient
Изменения от нашего унаследованного расширения Монго
Что наиболее важно, устаревшие драйверы MongoClient, MongoDB и Классы MongoCollection были устаревшими MongoDB\Driver\Manager class, который является новым шлюзом для подключения и выполнение запросов, команд и операций записи.
Источник: https://github.com/mongodb/mongo-php-driver/releases/tag/1.0.0
Итак, вот документация по классу замены и фрагмент кода, который должен заменить ваш:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Поскольку документация подсказывает это, класс устарел.
Предупреждение Это расширение, которое определяет этот класс, устарело. Вместо, следует использовать расширение MongoDB. Альтернативы этому классу включить:
Менеджер Источник: http://php.net/MongoClient
Из того, что я прочитал в их истории выпуска репозитория github, класс, который вы пытаетесь использовать, устарел начиная с версии mongodb 1.0.0
, поэтому в версии 1.6.0
этот класс не является даже часть dll
больше.
Это подтверждается этой проблемой на их github
Дикрик прокомментировал 16 апреля
MongoClient - это класс из старого наследия водитель и не должен быть доступен в этом. Новый водитель имеет \MongoDB\Driver\Manager, и сопровождающая библиотека имеет \ MongoDB\Client.
Вам либо нужно установить старое устаревшее расширение (pecl install mongo) и используйте PHP 5.x, или обновите свой код, чтобы использовать этот новый драйвер классы, так как старый драйвер не доступен для PHP 7. Есть руководство по обновлению на http://mongodb.github.io/mongo-php-library/upgrade-guide/
Источник: https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288
Другой способ, предложенный участником MongoDB, приведенным здесь выше, - использовать это расширение pecl: https://pecl.php.net/package/mongo вместо https://pecl.php.net/package/mongodb, но, пожалуйста, также обратите внимание на предупреждение:
Этот пакет был заменен, но все еще поддерживается для ошибок и исправлений безопасности.