TL;DR
La classe MongoClient
fa parte del pacchetto PECL legacy mongo ma non più del pacchetto mongodb aggiornato.
E dato che hai il mongodb
estensione installata e non il mongo
uno, ecco perché ricevi l'errore
Fatal error: Class 'MongoClient' not found
Su MongoDB PHP driver github repo, la nota di rilascio sulla versione 1.0.0, suggerisce agli sviluppatori di utilizzare MongoDB\Driver\Manager
invece di MongoClient
Modifiche rispetto alla nostra estensione mongo precedente
Più significativamente, le classi MongoClient, MongoDB e MongoCollection del driver legacy sono state obsolete dalla classe MongoDB\Driver\Manager, che è il nuovo gateway per la connessione e l'esecuzione di query, comandi e operazioni di scrittura.
Quindi, ecco la documentazione della classe sostitutiva e lo snippet di codice che dovrebbe sostituire il tuo:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
Poiché la documentazione lo richiede, la classe è obsoleta.
Avviso Questa estensione che definisce questa classe è obsoleta. Invece, dovrebbe essere utilizzata l'estensione MongoDB. Le alternative a questa classe includono:
- MongoDB\Driver\Manager
Da quello che ho letto sulla cronologia delle versioni del repository github, la classe che stai cercando di utilizzare è stata obsoleta dalla versione di mongodb 1.0.0
, quindi, sulla versione 1.6.0
lo sei, questa classe non fa nemmeno parte del dll
più.
Ciò è confermato da questo problema sul loro github
derickr ha commentato il 16 aprile
MongoClient è una classe del vecchio driver legacy e non dovrebbe essere disponibile in questo. Il nuovo driver ha \MongoDB\Driver\Manager e la libreria di accompagnamento ha\MongoDB\Client.
È necessario installare la vecchia estensione legacy (pecl installmongo) e utilizzare PHP 5.x, oppure aggiornare il codice per utilizzare queste nuove classi di driver poiché il vecchio driver non è disponibile per PHP 7. È disponibile una guida all'aggiornamento all'indirizzo http:// mongodb.github.io/mongo-php-library/upgrade-guide/
Un altro modo, come suggerito dal membro MongoDB citato qui sopra, è usare questa estensione pecl:https://pecl.php.net/package/mongo invece di https://pecl.php.net/package/mongodb ma per favore anche notare l'avviso che afferma:
Questo pacchetto è stato sostituito, ma è ancora mantenuto per bug e correzioni di sicurezza.