TL;DR
Klasa MongoClient
jest częścią starszego pakietu PECL mongo, ale nie jest już częścią aktualnego pakietu mongodb.
A ponieważ masz mongodb
zainstalowane rozszerzenie, a nie mongo
jeden, dlatego pojawia się błąd
Fatal error: Class 'MongoClient' not found
W repozytorium sterowników MongoDB PHP na github, informacja o wydaniu wersji 1.0.0 sugeruje programistom używanie MongoDB\Driver\Manager
zamiast MongoClient
Zmiany w naszym starszym rozszerzeniu mongo
Co najważniejsze, klasy MongoClient, MongoDB i MongoCollection starszego sterownika zostały zastąpione klasą MongoDB\Driver\Manager, która jest nową bramą do łączenia i wykonywania zapytań, poleceń i operacji zapisu.
Oto dokumentacja klasy zastępczej i fragment kodu, który powinien zastąpić twoją:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Ponieważ dokumentacja to podpowiada, klasa jest przestarzała.
Ostrzeżenie To rozszerzenie, które definiuje tę klasę, jest przestarzałe. Zamiast tego należy użyć rozszerzenia MongoDB. Alternatywy dla tej klasy obejmują:
- MongoDB\Driver\Manager
Z tego, co przeczytałem w historii wydania repozytorium github, klasa, której próbujesz użyć, została przestarzała od wersji mongodb 1.0.0
, więc w wersji 1.6.0
tak, ta klasa nie jest nawet częścią dll
więcej.
Potwierdza to ten problem na ich githubie
derickr skomentował 16 kwietnia
MongoClient to klasa ze starego legacydriver i nie powinna być dostępna w tym. Nowy sterownik ma \MongoDB\Driver\Manager, a towarzysząca mu biblioteka ma \MongoDB\Client.
Musisz albo zainstalować stare, starsze rozszerzenie (pecl installmongo) i użyć PHP 5.x, albo zaktualizować swój kod, aby używał nowych klas sterownika, ponieważ stary sterownik nie jest dostępny dla PHP 7. Istnieje przewodnik po uaktualnieniu pod adresem http:// mongodb.github.io/mongo-php-library/upgrade-guide/
Innym sposobem, jak sugeruje cytowany powyżej członek MongoDB, jest użycie tego rozszerzenia pecl:https://pecl.php.net/package/mongo zamiast https://pecl.php.net/package/mongodb, ale proszę również zwróć uwagę na ostrzeżenie:
Ten pakiet został zastąpiony, ale nadal jest utrzymywany pod kątem błędów i poprawek bezpieczeństwa.