diff --git a/app/cli.php b/app/cli.php index ced2fb8da..ee6fe1a80 100644 --- a/app/cli.php +++ b/app/cli.php @@ -1,6 +1,6 @@ label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_LOG_LIST) ->inject('response') - ->inject('register') ->inject('project') ->inject('user') ->inject('locale') ->inject('geodb') - ->action(function ($response, $register, $project, $user, $locale, $geodb) { + ->inject('app') + ->action(function ($response, $project, $user, $locale, $geodb, $app) { /** @var Appwrite\Utopia\Response $response */ /** @var Appwrite\Database\Document $project */ /** @var Appwrite\Database\Document $user */ /** @var Utopia\Locale\Locale $locale */ /** @var MaxMind\Db\Reader $geodb */ + /** @var Utopia\App $app */ - $adapter = new AuditAdapter($register->get('db')); + $adapter = new AuditAdapter($app->getResource('db')); $adapter->setNamespace('app_'.$project->getId()); $audit = new Audit($adapter); diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index dbbd59f8c..ce8a765c8 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -42,12 +42,12 @@ App::get('/v1/health/db') ->label('sdk.method', 'getDB') ->label('sdk.description', '/docs/references/health/get-db.md') ->inject('response') - ->inject('register') - ->action(function ($response, $register) { + ->inject('app') + ->action(function ($response, $app) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Registry\Registry $register */ + /** @var Utopia\App $app */ - $register->get('db'); /* @var $db PDO */ + $app->getResource('db'); $response->json(['status' => 'OK']); }); @@ -61,11 +61,11 @@ App::get('/v1/health/cache') ->label('sdk.method', 'getCache') ->label('sdk.description', '/docs/references/health/get-cache.md') ->inject('response') - ->inject('register') - ->action(function ($response, $register) { + ->inject('app') + ->action(function ($response, $app) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Registry\Registry $register */ - $register->get('cache'); /* @var $cache Predis\Client */ + /** @var Utopia\App $register */ + $app->getResource('cache'); $response->json(['status' => 'OK']); }); diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 9dd13e34e..a11c65edc 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -232,18 +232,18 @@ App::get('/v1/users/:userId/logs') ->label('sdk.response.model', Response::MODEL_LOG_LIST) ->param('userId', '', new UID(), 'User unique ID.') ->inject('response') - ->inject('register') ->inject('project') ->inject('projectDB') ->inject('locale') ->inject('geodb') - ->action(function ($userId, $response, $register, $project, $projectDB, $locale, $geodb) { + ->inject('app') + ->action(function ($userId, $response, $project, $projectDB, $locale, $geodb, $app) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Registry\Registry $register */ /** @var Appwrite\Database\Document $project */ /** @var Appwrite\Database\Database $projectDB */ /** @var Utopia\Locale\Locale $locale */ /** @var MaxMind\Db\Reader $geodb */ + /** @var Utopia\App $app */ $user = $projectDB->getDocument($userId); @@ -251,7 +251,7 @@ App::get('/v1/users/:userId/logs') throw new Exception('User not found', 404); } - $adapter = new AuditAdapter($register->get('db')); + $adapter = new AuditAdapter($app->getResource('db')); $adapter->setNamespace('app_'.$project->getId()); $audit = new Audit($adapter); diff --git a/app/http.php b/app/http.php index b32103a41..170e478d8 100644 --- a/app/http.php +++ b/app/http.php @@ -75,6 +75,8 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo return; } + $app = new App('UTC'); + $db = $register->get('dbPool')->get(); $redis = $register->get('redisPool')->get(); @@ -86,7 +88,9 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo return $redis; }); - $app = new App('UTC'); + App::setResource('app', function() use (&$app) { + return $app; + }); try { Authorization::cleanRoles(); diff --git a/app/workers/certificates.php b/app/workers/certificates.php index b44b2e44d..bc746775c 100644 --- a/app/workers/certificates.php +++ b/app/workers/certificates.php @@ -28,8 +28,11 @@ class CertificatesV1 extends Worker { global $register; + $db = $register->get('db'); + $cache = $register->get('cache'); + $consoleDB = new Database(); - $consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register)); + $consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache)); $consoleDB->setNamespace('app_console'); // Main DB $consoleDB->setMocks(Config::getParam('collections', [])); diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 006c38c6d..f2931de31 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -358,9 +358,12 @@ class DeletesV1 extends Worker { global $register; + $db = $register->get('db'); + $cache = $register->get('cache'); + if($this->consoleDB === null) { $this->consoleDB = new Database(); - $this->consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register)); + $this->consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache));; $this->consoleDB->setNamespace('app_console'); // Main DB $this->consoleDB->setMocks(Config::getParam('collections', [])); } @@ -374,9 +377,12 @@ class DeletesV1 extends Worker protected function getProjectDB($projectId): Database { global $register; - + + $db = $register->get('db'); + $cache = $register->get('cache'); + $projectDB = new Database(); - $projectDB->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register)); + $projectDB->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache)); $projectDB->setNamespace('app_'.$projectId); // Main DB $projectDB->setMocks(Config::getParam('collections', [])); diff --git a/app/workers/functions.php b/app/workers/functions.php index 52920158e..0c86a714c 100644 --- a/app/workers/functions.php +++ b/app/workers/functions.php @@ -138,6 +138,9 @@ class FunctionsV1 extends Worker { global $register; + $db = $register->get('db'); + $cache = $register->get('cache'); + $projectId = $this->args['projectId'] ?? ''; $functionId = $this->args['functionId'] ?? ''; $webhooks = $this->args['webhooks'] ?? []; @@ -151,7 +154,7 @@ class FunctionsV1 extends Worker $jwt = $this->args['jwt'] ?? ''; $database = new Database(); - $database->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register)); + $database->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache)); $database->setNamespace('app_'.$projectId); $database->setMocks(Config::getParam('collections', [])); diff --git a/app/workers/tasks.php b/app/workers/tasks.php index f9a9b6f5d..0b1b33e23 100644 --- a/app/workers/tasks.php +++ b/app/workers/tasks.php @@ -30,8 +30,11 @@ class TasksV1 extends Worker { global $register; + $db = $register->get('db'); + $cache = $register->get('cache'); + $consoleDB = new Database(); - $consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register)); + $consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache)); $consoleDB->setNamespace('app_console'); // Main DB $consoleDB->setMocks(Config::getParam('collections', [])); diff --git a/composer.lock b/composer.lock index 49c99de7c..88953096c 100644 --- a/composer.lock +++ b/composer.lock @@ -1431,21 +1431,21 @@ }, { "name": "utopia-php/audit", - "version": "0.5.1", + "version": "0.5.2", "source": { "type": "git", "url": "https://github.com/utopia-php/audit.git", - "reference": "154a850170a58667a15e4b65fbabb6cd0b709dd9" + "reference": "57e4f8f932164bdfd48ec32bf8d7d3f1bf7518e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/audit/zipball/154a850170a58667a15e4b65fbabb6cd0b709dd9", - "reference": "154a850170a58667a15e4b65fbabb6cd0b709dd9", + "url": "https://api.github.com/repos/utopia-php/audit/zipball/57e4f8f932164bdfd48ec32bf8d7d3f1bf7518e4", + "reference": "57e4f8f932164bdfd48ec32bf8d7d3f1bf7518e4", "shasum": "" }, "require": { "ext-pdo": "*", - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { "phpunit/phpunit": "^9.3", @@ -1477,9 +1477,9 @@ ], "support": { "issues": "https://github.com/utopia-php/audit/issues", - "source": "https://github.com/utopia-php/audit/tree/0.5.1" + "source": "https://github.com/utopia-php/audit/tree/0.5.2" }, - "time": "2020-12-21T17:28:53+00:00" + "time": "2021-06-23T16:02:40+00:00" }, { "name": "utopia-php/cache", diff --git a/src/Appwrite/Realtime/Server.php b/src/Appwrite/Realtime/Server.php index 15c977cb4..d4ee4af42 100644 --- a/src/Appwrite/Realtime/Server.php +++ b/src/Appwrite/Realtime/Server.php @@ -402,18 +402,10 @@ class Server * This is redundant soon and will be gone with merging the usage branch. */ $db = $this->register->get('dbPool')->get(); - $redis = $this->register->get('redisPool')->get(); - - $this->register->set('db', function () use (&$db) { - return $db; - }); - - $this->register->set('cache', function () use (&$redis) { - return $redis; - }); + $cache = $this->register->get('redisPool')->get(); $projectDB = new Database(); - $projectDB->setAdapter(new RedisAdapter(new MySQLAdapter($this->register), $this->register)); + $projectDB->setAdapter(new RedisAdapter(new MySQLAdapter($db, $cache), $cache)); $projectDB->setNamespace('app_'.$project); $projectDB->setMocks(Config::getParam('collections', [])); @@ -424,5 +416,8 @@ class Server $roles = Parser::getRoles(); Parser::subscribe($project, $connection, $roles, $this->subscriptions, $this->connections, $this->connections[$connection]['channels']); + + $this->register->get('dbPool')->put($db); + $this->register->get('redisPool')->put($cache); } }