Error: Class ‘MongoClient’ not found

После установки PHP 7 на части проектов можно столкнуться с ошибкой «Class ‘MongoClient’ not found«, связанной с заменой библиотеки pecl/mongo на pecl/mongodb и соответствующей заменой «MongoClient» на «MongoDB\Driver\Manager«.

К сожалению с данной проблемой пришлось столкнуться и в «yii2-flysystem»:

Error: Class 'MongoClient' not found in /vendor/creocoder/yii2-flysystem/src/GridFSFilesystem.php:51

Решение поблемы или поставить через composer библиотеки для совместимости:

composer require alcaeus/mongo-php-adapter

Или произвести рефакторинг кода со следующими заменами:

\MongoClient на \MongoDB\Client
\MongoCollection на \MongoDB\Collection
\MongoClient->selectDB на \MongoDB\Client->selectDatabase
\MongoClient->listDBs на \MongoDB\Client->listDatabases
Вывод теперь не массив, поэтому вам нужно будет использовать iterator_to_array.
\MongoCollection->getName на \MongoDB\Collection->getCollectionName
\MongoCollection->update на \MongoDB\Collection->updateOne или updateMany
\MongoCollection->remove на \MongoDB\Collection->deleteOne
\MongoCollection->batchInsert на \MongoDB\Collection->insertMany
Вы можете оставить комментарий ниже.