create($setting); } } /** * Create tables for app. * * @param DatabasePool $dbPool Database instance * @param ApplicationInfo $info App info * * @return void * * @since 1.0.0 */ protected static function createTables(DatabasePool $dbPool, ApplicationInfo $info) : void { $path = static::PATH . '/Install/db.json'; if (!\is_file($path)) { return; } $content = \file_get_contents($path); if ($content === false) { return; // @codeCoverageIgnore } $definitions = \json_decode($content, true); foreach ($definitions as $definition) { SchemaBuilder::createFromSchema($definition, $dbPool->get('schema'))->execute(); } } /** * Activate after install. * * @param DatabasePool $dbPool Database instance * @param ApplicationInfo $info App info * * @return void * * @since 1.0.0 */ protected static function activate(DatabasePool $dbPool, ApplicationInfo $info) : void { $classPath = \substr(\realpath(static::PATH) . '/Status', \strlen(\realpath(__DIR__ . '/../../'))); $class = \str_replace('/', '\\', $classPath); $class::activate($dbPool, $info); } /** * Re-init app. * * @param ApplicationInfo $info App info * * @return void * * @since 1.0.0 */ public static function reInit(ApplicationInfo $info) : void { $classPath = \substr(\realpath(static::PATH) . '/Status', \strlen(\realpath(__DIR__ . '/../../'))); $class = \str_replace('/', '\\', $classPath); $class::activateRoutes($info); $class::activateHooks($info); } }