public static function zipDirectory($directory, $destination, $overwrite = false, $ignored = [])
    {
        if (!file_exists($directory) || !is_dir($directory)) {
            return false;
        }
        $directory = rtrim($directory, DIRECTORY_SEPARATOR);

        $files = self::fileNamesRecursive($directory, '', $ignored);

        if (empty($files)) {
            return false;
        }

        return self::createZip($directory, $files, $destination, $overwrite);
    }