TL;DR
Třída MongoClient
je součástí staršího balíčku PECL mongo, ale již není součástí aktuálního balíčku mongodb.
A protože máte mongodb
nainstalováno rozšíření, nikoli mongo
za prvé, proto se vám zobrazuje chyba
Fatal error: Class 'MongoClient' not found
U ovladače MongoDB PHP github repo, poznámka k verzi o verzi 1.0.0, navrhuje vývojářům používat MongoDB\Driver\Manager
místo MongoClient
Změny oproti staršímu rozšíření mongo
Nejdůležitější je, že třídy MongoClient, MongoDB a MongoCollection staršího ovladače byly zastaralé třídou MongoDB\Driver\Manager, což je nová brána pro připojování a provádění dotazů, příkazů a operací zápisu.
Zde je tedy dokumentace náhradní třídy a úryvek kódu, který by měl nahradit váš:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Vzhledem k tomu, že to dokumentace vyžaduje, je tato třída zastaralá.
Upozornění Toto rozšíření, které definuje tuto třídu, je zastaralé. Místo toho by se mělo použít rozšíření MongoDB. Mezi alternativy této třídy patří:
- MongoDB\Driver\Manager
Z toho, co jsem četl o historii vydání jejich úložiště github, jsou třídy, které se pokoušíte použít, zastaralé od verze mongodb 1.0.0
, tedy na verzi 1.6.0
ano, tato třída není ani součástí dll
už.
To potvrzuje tento problém na jejich github
derickr komentoval 16. dubna
MongoClient je třída ze starého staršího ovladače a v tomto by neměla být dostupná. Nový ovladač má \MongoDB\Driver\Manager a doprovodná knihovna \MongoDB\Client.
Musíte buď nainstalovat staré starší rozšíření (pecl installmongo) a používat PHP 5.x, nebo aktualizovat svůj kód, aby používal tyto nové třídy ovladačů, protože starý ovladač není pro PHP 7 k dispozici. Průvodce aktualizací je na http:// mongodb.github.io/mongo-php-library/upgrade-guide/
Dalším způsobem, jak navrhuje člen MongoDB citovaný zde výše, je použít toto rozšíření pecl:https://pecl.php.net/package/mongo místo https://pecl.php.net/package/mongodb, ale také prosím všimněte si tam varování:
Tento balíček byl nahrazen, ale je stále udržován kvůli chybám a opravám zabezpečení.