alchemy / zippy
Zippy, the archive manager companion
Installs: 19 917 131
Dependents: 64
Suggesters: 1
Security: 0
Stars: 470
Watchers: 19
Forks: 106
Open Issues: 45
Requires
- php: >=7.1
- doctrine/collections: ~1.0
- symfony/filesystem: ^2.0.5 || ^3.0 || ^4.0 || ^5.0
- symfony/polyfill-mbstring: ^1.3
- symfony/process: ^3.4 || ^4.0 || ^5.0
Requires (Dev)
- ext-zip: *
- guzzle/guzzle: ~3.0
- guzzlehttp/guzzle: ^6.0
- phpunit/phpunit: ^7.0
- symfony/finder: ^2.0.5 || ^3.0 || ^4.0 || ^5.0
Suggests
- ext-zip: To use the ZipExtensionAdapter
- guzzle/guzzle: To use the GuzzleTeleporter with Guzzle 3
- guzzlehttp/guzzle: To use the GuzzleTeleporter with Guzzle 6
README
A PHP library to read, create, and extract archives in various formats via command line utilities or PHP extensions
Installation
The only supported installation method is via Composer. Run the following command to require Zippy in your project:
composer require alchemy/zippy
Adapters
Zippy currently supports the following drivers and file formats:
- zip
- .zip
- PHP zip extension
- .zip
- GNU tar
- .tar
- .tar.gz
- .tar.bz2
- BSD tar
- .tar
- .tar.gz
- .tar.bz2
Getting started
All the following code samples assume that Zippy is loaded and available as $zippy
. You need the following code (or variation of) to load Zippy:
<?php
use Alchemy\Zippy\Zippy;
// Require Composer's autoloader
require __DIR__ . '/vendor/autoload.php';
// Load Zippy
$zippy = Zippy::load();
List an archive's contents:
// Open an archive $archive = $zippy->open('build.tar'); // Iterate through members foreach ($archive as $member) { echo "Archive contains $member" . PHP_EOL; }
Extract an archive to a specific directory:
// Open an archive $archive = $zippy->open('build.tar'); // Extract archive contents to `/tmp` $archive->extract('/tmp');
Create a new archive
// Creates an archive.zip that contains a directory "folder" that contains // files contained in "/path/to/directory" recursively $archive = $zippy->create('archive.zip', array( 'folder' => '/path/to/directory' ), true);
Customize file and directory names inside archive
$archive = $zippy->create('archive.zip', array( 'folder' => '/path/to/directory', // will create a folder at root 'http://www.google.com/logo.jpg', // will create a logo.jpg file at root fopen('https://www.facebook.com/index.php'), // will create an index.php at root 'directory/image.jpg' => 'image.jpg', // will create a image.jpg in 'directory' folder ));
Documentation
Documentation hosted at read the docs !
License
This project is licensed under the MIT license.