new WindowsBuilder($input->getOptions()), 'Darwin' => new MacOSBuilder($input->getOptions()), 'Linux' => new LinuxBuilder($input->getOptions()), 'BSD' => new BSDBuilder($input->getOptions()), default => throw new WrongUsageException('Current OS "' . PHP_OS_FAMILY . '" is not supported yet'), }; return self::$builder; } public static function getBuilder(): BuilderBase { if (self::$builder === null) { throw new WrongUsageException('Builder has not been initialized'); } return self::$builder; } }