I am writing PHP DigitalOcean functions that connect to a hosted MongoDatabase.
I can connect to the DB using MongoDB\Driver\Manager like this:
$m = new MongoDB\Driver\Manager('connectionstring');
But I can’t use MongoDB\Client, the below fails with Error: Class "MongoDB\Client" not found
$mgc = new MongoDB\Client();
Is it possible to use MondoDB\Client somehow?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
The reason that
MongoDB\Driver\Manager
does not cause the “Error: Class <class> not found” error message butMongoDB\Client
does is thatMongoDB\Driver\Manager
is included in the PHP runtime right now.Because
MongoDB\Client
is not provided by the runtime, in order to use it, you’ll have to include acomposer.json
file that references its package on Packagist and include a build script. See https://github.com/digitalocean/sample-functions-php-numberstowords for a sample function that does this.Note that while some classes, like
MongoDB\Driver\Manager
, are included in the PHP runtime, and can therefore be used without using Composer like this, we don’t officially support anything except what’s built into PHP in the PHP runtime right now. Therefore, the best practice right now is to explicitly list all dependencies you use in yourcomposer.json
file. We have plans to address this long term. We are always open to feedback about Functions and our other products, and you can provide it using our official feedback platform at https://ideas.digitalocean.com/.