TL;DR
Klassen MongoClient
er en del af den ældre PECL-pakke mongo, men ikke længere af den opdaterede mongodb-pakke.
Og da du har mongodb
udvidelsen installeret, og ikke mongo
en, det er derfor, du får fejlen
Fatal error: Class 'MongoClient' not found
På MongoDB PHP driver github repo, udgivelsesnoten om version 1.0.0, foreslår udviklere at bruge MongoDB\Driver\Manager
i stedet for MongoClient
Ændringer fra vores ældre mongo-udvidelse
Det vigtigste er, at den ældre drivers MongoClient-, MongoDB- og MongoCollection-klasser er blevet forældet af MongoDB\Driver\Manager-klassen, som er den nye gateway til at forbinde og udføre forespørgsler, kommandoer og skriveoperationer.
Så her er erstatningsklassens dokumentation og kodestykket, der skal erstatte din :
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Da dokumentationen beder om det, er klassen forældet.
Advarsel Denne udvidelse, der definerer denne klasse, er forældet. I stedet skal MongoDB-udvidelsen bruges. Alternativer til denne klasse omfatter:
- MongoDB\Driver\Manager
Ud fra hvad jeg læste om deres udgivelseshistorik for github-depoter, er den klasse, du forsøger at bruge, blevet forældet siden versionen af mongodb 1.0.0
, altså på versionen 1.6.0
du er, denne klasse er ikke engang en del af dll
længere.
Det bekræftes af dette problem på deres github
derickr kommenterede den 16. april
MongoClient er en klasse fra den gamle legacydriver og formodes ikke at være tilgængelig i denne. Den nye driver har \MongoDB\Driver\Manager, og det medfølgende bibliotek har\MongoDB\Client.
Du skal enten installere den gamle ældre udvidelse (pecl installmongo) og bruge PHP 5.x, eller opdatere din kode for at bruge denne nye drivers klasser, da den gamle driver ikke er tilgængelig til PHP 7. Der er en opgraderingsvejledning på http:// mongodb.github.io/mongo-php-library/upgrade-guide/
En anden måde, som foreslået af MongoDB-medlemmet citeret her ovenfor, er at bruge denne pecl-udvidelse:https://pecl.php.net/package/mongo i stedet for https://pecl.php.net/package/mongodb, men venligst også læg mærke til advarslen der siger:
Denne pakke er blevet erstattet, men vedligeholdes stadig for fejl og sikkerhedsrettelser.