samkitano / kompressor
laravel的基本压缩工具
1.1.0
2019-01-05 08:45 UTC
Requires (Dev)
- orchestra/testbench: ^3.7
This package is auto-updated.
Last update: 2024-09-06 09:17:44 UTC
README
Laravel 5.7的存档工具
Kompressor 是一个简化版的PHP存档库(如Zip)包装器,用于在Laravel中轻松管理存档。
需求
- PHP >= 7.1.3
- Laravel 5.7.*
- PHP Zip 扩展
安装
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许可