TL;DR
De klasse MongoClient
maakt deel uit van het oude PECL-pakket mongo maar niet meer van het up-to-date mongodb-pakket.
En aangezien je de mongodb
. hebt extensie geïnstalleerd, en niet de mongo
één, dit is waarom je de foutmelding krijgt
Fatal error: Class 'MongoClient' not found
Op MongoDB PHP-stuurprogramma github repo, de release-opmerking over de versie 1.0.0, stelt ontwikkelaars voor om MongoDB\Driver\Manager
te gebruiken in plaats van MongoClient
Wijzigingen ten opzichte van onze oude mongo-extensie
Het belangrijkste is dat de MongoClient-, MongoDB- en MongoCollection-klassen van het oude stuurprogramma zijn verouderd door de MongoDB\Driver\Manager-klasse, de nieuwe gateway voor het verbinden en uitvoeren van query's, opdrachten en schrijfbewerkingen.
Dus, hier is de documentatie van de vervangende klasse en het codefragment dat de jouwe zou moeten vervangen:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Omdat de documentatie erom vraagt, is de klasse verouderd.
Waarschuwing Deze extensie die deze klasse definieert, is verouderd. In plaats daarvan moet de MongoDB-extensie worden gebruikt. Alternatieven voor deze klasse zijn onder meer:
- MongoDB\Driver\Manager
Van wat ik heb gelezen in hun github-repository-releasegeschiedenis, is de klasse die je probeert te gebruiken verouderd sinds de versie van mongodb 1.0.0
, dus op de versie 1.6.0
jij bent, deze klasse maakt niet eens deel uit van de dll
niet meer.
Dat wordt bevestigd door dit probleem op hun github
derickr heeft gereageerd op 16 april
MongoClient is een klasse van de oude legacydriver en zou in deze niet beschikbaar moeten zijn. Het nieuwe stuurprogramma heeft \MongoDB\Driver\Manager en de bijbehorende bibliotheek heeft\MongoDB\Client.
U moet ofwel de oude legacy-extensie installeren (pecl installmongo) en PHP 5.x gebruiken, of uw code bijwerken om deze nieuwe driverklassen te gebruiken, aangezien de oude driver niet beschikbaar is voor PHP 7. Er is een upgradehandleiding op http:// mongodb.github.io/mongo-php-library/upgrade-guide/
Een andere manier, zoals voorgesteld door het hierboven geciteerde MongoDB-lid, is om deze pecl-extensie te gebruiken:https://pecl.php.net/package/mongo in plaats van https://pel.php.net/package/mongodb maar alstublieft ook let op de waarschuwing daar waarin staat:
Dit pakket is vervangen, maar wordt nog steeds onderhouden voor bugs en beveiligingsoplossingen.