When executing the following PHP code:
$m = new MongoClient("mongodb://localhost:27017");
I get the following error:
Fatal error: Class 'MongoClient' not found in (...)
MongoDB extension seems properly installed (I copied php_mongodb.dll
to ext folder and updated php.ini
).
PHP seems to confirm that the extension is running properly as the following code confirms it is loaded:
echo extension_loaded("mongodb") ? "loadedn" : "not loadedn";
Also, phpinfo()
shows that mongodb extension has been loaded.
UPDATE: my problem is still not solved.
phpinfo()
clearly shows that the driver is loaded:
But I am still receiving the same fatal error.
TL;DR
The class
MongoClient
is part of the legacy PECL package mongo but not anymore of the up-to-date mongodb package.And since you have the
mongodb
extension installed, and not themongo
one, this is why you are getting the errorOn MongoDB PHP driver github repo, the release note about the version 1.0.0, is suggesting developers to use
MongoDBDriverManager
instead ofMongoClient
Source:: https://github.com/mongodb/mongo-php-driver/releases/tag/1.0.0
So, here is the replacement class documentation and the snippet of code that should replace yours :
As the documentation is prompting it, the class is deprecated.
Source: http://php.net/MongoClient
From what I read on their github repository release history, the class you are trying to use have been obsoleted since the version of
mongodb 1.0.0
, so, on the version1.6.0
you are, this class is not even part of thedll
anymore.That is confirmed by this issue on their github
Source: https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288
Another way, as suggested by the MongoDB member quoted here above is to use this pecl extension: https://pecl.php.net/package/mongo instead of https://pecl.php.net/package/mongodb but please also notice the warning there stating: