MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:errore irreversibile:classe 'MongoClient' non trovata

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.