2017-05-09 2 views
0

Je possède ce problème lorsque je tente de faire app/console doctrine:mongodb:schema:update sur le terminal:PHP: classe "MongoClient" introuvable?

[Symfony \ Component \ Debug \ Exception \ ClassNotFoundException] Tentative de charger la classe "MongoClient" de l'espace de noms global. Avez-vous oublié une instruction "use"?

J'ai essayé tout ce que j'ai trouvé. Quelqu'un peut m'aider s'il vous plaît?

+2

Avez-vous ajouté 'extension = mongodb.so' dans votre fichier' php.ini'? – Pila

+1

Assurez-vous que votre extension intl est activée dans votre php.ini. Cela a fait l'affaire pour moi. –

+0

S'il vous plaît noter que '\ MongoClient' vient du pilote hérité appelé' mongo' (https://pecl.php.net/package/mongo) et vous devez l'installer, pas courant 'mongodb' (note différence' db' par la fin) – malarzm

Répondre

0

Je vois que vous utilisez Doctrine MongoDB ODM. Doctrine MongoDB ODM repose sur le pilote mongo existant ext-mongo, disponible uniquement pour PHP jusqu'à 5.6. Si vous utilisez PHP jusqu'à 5,6, il vous suffit de l'installer et de l'activer.

Si vous utilisez PHP7 + vous devez installer le nouveau pilote mongo ext-mongodb et utiliser un polyfill pour combler la doctrine MongoDB ODM avec la nouvelle bibliothèque, comme indiqué ici: http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/introduction.html#using-php-7

Vous pouvez utiliser Doctrine MongoDB ODM avec PHP 7, mais il y a quelques étapes supplémentaires pendant l'installation. Comme le pilote hérité (appelé ext-mongo) n'est pas disponible sur PHP 7, vous devrez installer le nouveau pilote (ext-mongodb) et utiliser un polyfill pour fournir l'API du pilote hérité.