TL;DR
Класът MongoClient
е част от наследения PECL пакет mongo, но вече не е от актуалния пакет mongodb.
И тъй като имате mongodb
инсталирано разширение, а не mongo
едно, ето защо получавате грешката
Fatal error: Class 'MongoClient' not found
На MongoDB PHP драйвер github repo, бележката за версията 1.0.0 предлага на разработчиците да използват MongoDB\Driver\Manager
вместо MongoClient
Промени от нашето наследено разширение mongo
Най-важното е, че класовете MongoClient, MongoDB и MongoCollection на наследения драйвер са остарели от класа MongoDB\Driver\Manager, който е новият шлюз за свързване и изпълнение на заявки, команди и операции за запис.
И така, ето документацията за заместващия клас и фрагмента от код, който трябва да замени вашия:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Тъй като документацията го подсказва, класът е остарял.
Предупреждение Това разширение, което дефинира този клас, е отхвърлено. Вместо това трябва да се използва разширението MongoDB. Алтернативите на този клас включват:
- MongoDB\Driver\Manager
От това, което прочетох в тяхната история на издаване на хранилище github, класът, който се опитвате да използвате, е остарял от версията на mongodb 1.0.0
, така че във версия 1.6.0
вие сте, този клас дори не е част от dll
вече.
Това се потвърждава от този проблем на техния github
derickr коментира на 16 април
MongoClient е клас от стария legacydriver и не би трябвало да е наличен в този. Новият драйвер има \MongoDB\Driver\Manager, а придружаващата библиотека има \MongoDB\Client.
Трябва или да инсталирате старото наследено разширение (pecl installmongo) и да използвате PHP 5.x, или да актуализирате кода си, за да използвате този нов драйвер, тъй като старият драйвер не е наличен за PHP 7. Има ръководство за надграждане на http:// mongodb.github.io/mongo-php-library/upgrade-guide/
Друг начин, както е предложено от члена на MongoDB, цитиран тук по-горе, е да използвате това pecl разширение:https://pecl.php.net/package/mongo вместо https://pecl.php.net/package/mongodb, но моля също забележете там предупреждението, което гласи:
Този пакет е заменен, но все още се поддържа за грешки и корекции на сигурността.