getInternalName() . '\Admin\Status'; $class::deactivate($dbPool, $info); } /** * Drop tables of app. * * @param DatabasePool $dbPool Database instance * @param ApplicationInfo $info App info * * @return void * * @since 1.0.0 */ public static function dropTables(DatabasePool $dbPool, ApplicationInfo $info) : void { $path = __DIR__ . '/../../Web/' . $info->getInternalName() . '/Admin/Install/db.json'; if (!\is_file($path)) { return; } $content = \file_get_contents($path); if ($content === false) { return; // @codeCoverageIgnore } $definitions = \json_decode($content, true); $builder = new SchemaBuilder($dbPool->get('schema')); foreach ($definitions as $definition) { $builder->dropTable($definition['table'] ?? ''); } $builder->execute(); } /** * Unregister app from database. * * @param DatabasePool $dbPool Database instance * @param ApplicationInfo $info App info * * @return void * * @since 1.0.0 */ public static function unregisterFromDatabase(DatabasePool $dbPool, ApplicationInfo $info) : void { $queryApp = new Builder($dbPool->get('delete')); $queryApp->delete() ->from('app') ->where('app_name', '=', $info->getInternalName()) ->execute(); } }