container = $container; } /** * Get the singleton instance. * * @return self */ public static function instance(): self { if ( self::$instance === null ) { self::$instance = new self( swpsp_plugin()->container() ); } return self::$instance; } /** * Uninstall hook run via register_uninstall_hook(). * * @return void */ public static function uninstall(): void { self::instance()->handle_uninstall(); } /** * Actual uninstall logic. * * @return void */ private function handle_uninstall(): void { $this->remove_database_tables(); } /** * Remove database tables. * * @return void */ private function remove_database_tables(): void { $this->container->get( Provider::class )->register(); $tables = $this->container->get( Provider::SCHEMA_TABLES ); /** @var class-string