Back

Utopia/Database

  • 0
  • Databases
Arnab20k(Gravdestroyer)
7 Oct, 2023, 16:11

I am working with the redis adaptor But I am facing some issues as I am totally new to php language

TypeScript
require_once __DIR__ . '/database/vendor/autoload.php';
use Utopia\Database\Database;
use Utopia\Cache\Cache;
use Utopia\Cache\Adapter\Memory;
use Utopia\Database\Adapter\Mongo;
use MongoDB\Client; // Use MongoDB\Client for MongoDB connection

$dbHost = 'mongo';
$dbPort = 27017;
$dbUser = 'root';
$dbPass = 'password';
$dbName = 'dbName';

$mongoClient = new Client("mongodb://localhost:27017");

$cache = new Cache(new Memory()); // or use any cache adapter you wish

$database = new Database(new Mongo($mongoClient, $dbName), $cache);
echo $database;

But I am getting this issue

TypeScript
PHP 
Fatal error:  Uncaught TypeError: Utopia\Database\Adapter\Mongo::__construct(): Argument #1 ($client) must be of type Utopia\Mongo\Client, MongoDB\Client given, called in /home/arnab/Desktop/test.php on line 19 and defined in /home/arnab/Desktop/database/src/Database/Adapter/Mongo.php:53
Stack trace:
#0 /home/arnab/Desktop/test.php(19): Utopia\Database\Adapter\Mongo->__construct()
#1 {main}
  thrown in /home/arnab/Desktop/database/src/Database/Adapter/Mongo.php on line 53
TL;DR
The user is encountering an error related to the Swoole\Coroutine\Client class not being found. They mentioned that Swoole is present in the vendor, but they cannot install it using composer as they receive an error stating that the package does not exist. In addition, the user is new to PHP and is facing issues with the redis adapter. They provided a code snippet where they are trying to connect to a MongoDB instance using the `MongoDB\Client` class. However, they are getting a fatal error stating that the argument passed to the constructor of `Utopia\Database\Adapter\Mongo` must be of type `Utop
darShan
7 Oct, 2023, 16:27

From what I can understand, you need to pass an instance of \Utopia\Mongo\Client but you seem to be passing an instance of MongoDB\Client.

Arnab20k(Gravdestroyer)
8 Oct, 2023, 13:16

After solving this error I am getting this error

TypeScript
PHP Fatal error:  Uncaught Error: Class "Swoole\Coroutine\Client" not found in /home/arnab/Desktop/php-utopia-database/vendor/utopia-php/mongo/src/Client.php:83
Stack trace:
#0 /home/arnab/Desktop/php-utopia-database/test.php(17): Utopia\Mongo\Client->__construct()
#1 {main}
  thrown in /home/arnab/Desktop/php-utopia-database/vendor/utopia-php/mongo/src/Client.php on line 83

But swoole is present in the vendor and if i am going to install it with composer I am getting the error package not exists

Drake
15 Oct, 2023, 02:12

Are you executing stuff in the docker container?

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more