PHP MongoDB: Erreur fatale: La classe 'MongoClient' est introuvable
Lors de l'exécution de code PHP suivant:
$m = new MongoClient("mongodb://localhost:27017");
J'obtiens l'erreur suivante:
Fatal error: Class 'MongoClient" introuvable dans la (...)
MongoDB l'extension semble bien installé (j'ai copié php_mongodb.dll pour ext dossier et mise à jour de php.ini).
PHP semble confirmer que l'extension fonctionne correctement comme le code suivant confirme qu'il est chargé:
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
Aussi, phpinfo()
montre que mongodb extension a été chargé.
Mise à JOUR
Problème n'est toujours pas résolu.
phpinfo()
montre clairement que le pilote est chargé:
Mais je reçois encore la même erreur fatale.
source d'informationauteur Tom
Vous devez vous connecter pour publier un commentaire.
TL; DR
La classe
MongoClient
fait partie de l'héritage PECL paquet mongo mais ce n'est plus de l'up-to-date mongodb paquet.Sur MongoDB PHP pilote de dépôt github, la note de libération à propos de la version 1.0.0, propose aux développeurs d'utiliser
MongoDB\Driver\Manager
au lieu deMongoClient
Source: https://github.com/mongodb/mongo-php-driver/releases/tag/1.0.0
Que la documentation est la convaincre, la classe est obsolète.
Source: http://php.net/MongoClient
De ce que j'ai lu sur leur github version de l'histoirela classe que vous essayez d'utiliser ont été rendu obsolète depuis la version de
mongodb 1.0.0
donc, sur la version1.6.0
vous, cette classe n'est même pas partie de ladll
plus.Qui est confirmé par cette question sur leur github
Source : https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288
Ici est le remplacement de documentation de classe et l'extrait de code qui devrait remplacer le vôtre :
Une autre façon, comme l'a suggéré le MongoDB cité ci-dessus est d'utiliser cette extension pecl: https://pecl.php.net/package/mongo au lieu de https://pecl.php.net/package/mongodb mais s'il vous plaît notez également l'avertissement, il en indiquant: