samkitano/kompressor

laravel的基本压缩工具

1.1.0 2019-01-05 08:45 UTC

This package is auto-updated.

Last update: 2024-09-06 09:17:44 UTC


README

Build Status

Laravel 5.7的存档工具

Kompressor 是一个简化版的PHP存档库(如Zip)包装器,用于在Laravel中轻松管理存档。

需求

安装

composer require samkitano/kompressor

配置

发布配置(可选)

php artisan vendor:publish --tag=kompressor

配置文件包含所有条目的详细描述。

可用的存档工具

目前,只有Zip可用。您可以自由实现自己的存档工具。

用法

压缩文件

Kompressor::compress(
    $files,
    $destination = null,
    $name = null,
    $delete = false,
    $pattern = null
);

参数:

  • $files [array|string] 要存档的文件或目录

    • 必需
    • 必须包含完全限定的路径。
    • 可以是目录、单个文件或文件数组。
    • 多个文件必须在同一目录中。
    • 不允许多个源目录。
    • 不允许混合源(目录和文件)。
  • $destination [string] 目标路径

    • 可选
    • 覆盖默认配置 'default_archives_directory'
    • 如果省略,存档将在默认配置下创建。
    • 如果省略且默认配置未设置,存档将在源目录下创建。
    • 必须是完全限定的路径。
    • 必须存在。
  • $name [string] 存档文件的名称

    • 可选
    • 默认是源文件(夹)目录名称。
    • 无需包含扩展名。
  • $delete [boolean] 在存档后标记源文件(夹)为删除

    • 可选
    • 默认值为 false。
  • $pattern [string] 存档目录的 glob 搜索模式

    • 可选
    • 覆盖默认配置 'glob_dir_pattern'
    • 默认是 '*'。

提取文件

Kompressor::extract(
    $source,
    $destination = null,
    $delete = false,
    $files = []
);

参数:

  • $source [string] 存档的完整路径

    • 必需
    • 必须是完全限定的路径。
    • 存档必须存在。
  • $destination [string] 目标路径

    • 可选
    • 如果省略,文件将在同一存档目录中提取。
    • 必须是完全限定的路径。
    • 必须存在。
  • $delete [boolean] 在提取后标记存档文件为删除

    • 可选
    • 默认值为 false。
  • $files [array] 要提取的特定文件

    • 可选
    • 如果省略,将提取所有文件。
    • 必须是文件名数组。
    • 必须在存档中存在。

读取存档

Kompressor::read(
    $source
);

参数:

  • $source [string] 存档的完整路径
    • 必需
    • 必须是完全限定的路径。
    • 存档必须存在。

返回包含存档中文件名的数组。

将文件添加到存档中

Kompressor::add(
    $source,
    $files,
    $delete = false
);

参数

  • $source [string] 存档的完整路径

    • 必需
    • 必须是完全限定的路径。
    • 存档必须存在。
  • $files [array|string] 要添加到存档中的文件或目录

    • 必需
    • 必须是单个文件或文件数组。
    • 多个文件必须在同一目录中。
    • 不允许多个源目录。
    • 不允许混合源(目录和文件)。
  • $delete [boolean] 在添加到存档后标记源文件(夹)为删除

    • 可选
    • 默认值为 false。

从存档中删除文件

Kompressor::remove(
    $source,
    $files
);

参数

  • $source [string] 存档的完整路径

    • 必需
    • 必须是完全限定的路径。
    • 存档必须存在。
  • $files [array|string] 要从存档中删除的文件

    • 必需
    • 必须是单个文件或文件数组。
    • 多个文件必须在同一目录中。
    • 不允许多个源目录。
    • 不允许混合源(目录和文件)。

添加对其他库的支持

1 - 在 libraries/ 中创建一个类

  • 类和文件名 必须 与库名称匹配。
  • 必须 扩展 BaseCompression 类。
  • 必须 实现 CompressionContract 接口。

例如,如果您想实现 gzip 库,类名应为 Gzip,文件名应为 Gzip.php

<?php

namespace sammy\Kompressor\Libraries;

class Gzip extends BaseCompression implements CompressionContract
{
    //
}

2 - 实现合同方法,做您的事情。

许可证

此软件包是开源软件,许可协议为MIT许可