bind('db.connector.mysqli', function ($container) { return new Connector(); }); Connection::resolverFor('mysqli', function ($connection, $database, $prefix, $config) { return new Connection( $connection(), $database, $prefix, $config ); }); $capsule = new Capsule(aimuse()); $capsule->addConnection([ 'driver' => 'mysqli', 'host' => $wpdb->dbhost, 'database' => $wpdb->dbname, 'username' => $wpdb->dbuser, 'password' => $wpdb->dbpassword, 'charset' => $wpdb->charset, 'collation' => $wpdb->collate, 'prefix' => $wpdb->prefix, 'strict' => false, 'timezone' => '+00:00', ]); $capsule->getDatabaseManager(); $capsule->setAsGlobal(); $capsule->bootEloquent(); aimuse()->singleton('db', function () use ($capsule) { return $capsule->getDatabaseManager(); }); aimuse()->singleton('migration.repository', function () { return new DatabaseMigrationRepository(aimuse()->get('db'), aimuse()->prefix() . '_migrations'); }); aimuse()->singleton('files', function () { return new Filesystem(); }); aimuse()->singleton('migrator', function ($app) { return new Migrator(aimuse()->get('migration.repository'), aimuse()->get('db'), aimuse()->get('files')); }); aimuse()->singleton('seeder', function ($app) { $seeder = new DatabaseSeeder(); $seeder->setContainer($app); return $seeder; }); } public function manager(): DatabaseManager { return aimuse()->make('db'); } public function uninstall() { try { /** * @var Migrator $migrator */ $migrator = aimuse()->make('migrator'); $files = $migrator->getMigrationFiles(aimuse()->dir() . '/database/migrations'); $migrator->reset($files); if ($migrator->repositoryExists()) { $migrator->getRepository()->deleteRepository(); } } catch (\Throwable $th) { } } public function install() { Log::info('Installing database'); /** * @var Migrator $migrator */ $migrator = aimuse()->make('migrator'); if (!$migrator->repositoryExists()) { $migrator->getRepository()->createRepository(); } $files = $migrator->getMigrationFiles(aimuse()->dir() . '/database/migrations'); $migrator->run($files); Log::info('Seeding database'); /** * @var DatabaseSeeder $seeder */ $seeder = aimuse()->make('seeder'); $seeder->run(); } public function installed() { return aimuse()->make('migrator')->repositoryExists(); } }