2017 © Pedro Peláez
 

library laravel-zip

ZipArchive toolbox

image

zanysoft/laravel-zip

ZipArchive toolbox

  • Wednesday, October 11, 2017
  • by mubasharahmad
  • Repository
  • 1 Watchers
  • 32 Stars
  • 42,193 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 11 Forks
  • 4 Open issues
  • 3 Versions
  • 40 % Grown

The README.md

zanysoft/laravel-zip

Downloads GitHub license Maintenance GitHub tag, (*1)

laravel-zip is the world's leading zip utility for file compression and backup., (*2)

This library was written to simplify and automate Zip files management using PHP ZipArchive., (*3)

Installation

Require this package in your composer.json and update composer. This will download the package., (*4)

composer require zanysoft/laravel-zip

After updating composer, add the ServiceProvider to the providers array in config/app.php, (*5)

ZanySoft\Zip\ZipServiceProvider::class,

You can optionally use the facade for shorter code. Add this to your facades:, (*6)

'Zip' => ZanySoft\Zip\Facades\Zip::class,

Zip usage

use ZanySoft\Zip\Zip class only use Zip is made to handle a zip file., (*7)

  • include the Zip class at top:
use Zip;

Basic operations

  • Open zip file:, (*8)

    $zip = Zip::open('file.zip');
    
    
  • Create zip file:, (*9)

    $zip = Zip::create('file.zip');
    
    
  • Check zip file:, (*10)

    $is_valid = Zip::check('file.zip');
    
    
  • Extract zip file:, (*11)

    // extract whole archive
    $zip->extract('/path/to/uncompressed/files');
    
    // extract a file
    $zip->extract('/path/to/uncompressed/files', 'file');
    
    // extract multiple files
    $zip->extract('/path/to/uncompressed/files', array('file1','file2'));
    
    
  • Check if zip has a file:, (*12)

    // Check if archive has a file
    $zip->has('/path/to/file/in/archive');
    
    // Check if archive has a file case insensitively
    $zip->has('/path/to/file/in/archive', ZipArchive::FL_NOCASE);
    
    // Check if archive has a file ignoring directory component
    $zip->has('file', ZipArchive::FL_NODIR);
    
    // Check if archive has a file case insensitively ignoring directory component
    $zip->has('file', ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR);
    
    
  • Add a file/directory to zip:, (*13)

    $zip->add('/path/to/my/file');
    
    // declaring path
    $zip->setPath('/path/to/my')->add('file');
    
    // add directory
    $zip->add('/path/to/my/directory');
    
    // add directory (only its content)
    $zip->add('/path/to/my/directory', true);
    
    
  • Add content to zip:, (*14)

    $zip->addFromString('file name with extension', 'content of file');
    
    $zip->addFromString('filename.txt', $file_content);
    $zip->addFromString('folder/file1.txt', $file_content);
    $zip->addFromString('folder/file2.txt', $file_content);
    
    
    
  • Add multiple files/directories to zip:, (*15)

    // using array as parameter
    $zip->add( array('/path/to/my/file1', '/path/to/my/file2');
    
    // chaining methods
    $zip->add('/path/to/my/file1')->add('/path/to/my/file2');
    
    // declaring path
    $zip->setPath('/path/to/my')->add('file1')->add('file2');
    
    
  • Delete a file/directory from zip:, (*16)

    $zip->delete('file');
    
    
  • Delete multiple files/directories from zip:, (*17)

    // using array as parameter
    $zip->delete( array('file1', 'file2') );
    
    // chaining methods
    $zip->delete('file1')->delete('file2');
    
    
  • List content of zip file, (*18)

    $zip->listFiles();
    
    
  • Close zip file, (*19)

    $zip->close();
    
    

Additional methods

  • Skip hidden files while adding directories:, (*20)

    // set mode
    $zip->setSkipped('HIDDEN');
    
    // get mode
    $mode = $zip->getSkipped();
    
    
  • Use password for zip extraction:, (*21)

    // set password
    $zip->setPassword('slartibartfast');
    
    // get password
    $password = $zip->getPassword();
    
    
  • Use a mask != 0777 for created folders:, (*22)

    // set mask
    $zip->setMask(0644);
    
    // get mask
    $mask = $zip->getMask();
    
    

ZipManager usage

The \ZanySoft\Zip\ZipManager can handle multiple ZanySoft\Zip\Zip objects., (*23)

  • include the Zip and ZipManager class at top:
use ZanySoft\Zip\ZipManager;
use Zip;

Basic operations

  • Init the manager and register Zips:, (*24)

    // init manager
    $manager = new ZipManager();
    
    // register existing zips
    $manager->addZip( Zip::open('/path/to/my/file1.zip') )
            ->addZip( Zip::open('/path/to/my/file2.zip') );
    
    // register a new zip
    $manager->addZip( Zip::create('/path/to/my/file3.zip') );
    
    
  • Basic zips management:, (*25)

    // get a list of registered zips
    $list = $manager->listZips();
    
    // remove a zip
    $manager->removeZip($ZipObject);
    
    // get a Zip
    $zip = $manager->getZip(0);
    
    
  • Add files to all zips:, (*26)

    $manager = new ZipManager();
    
    // register existing zips
    $manager->addZip( Zip::open('/path/to/my/file1.zip') )
            ->addZip( Zip::open('/path/to/my/file2.zip') );
    
    // register a new zip
    $manager->addZip( Zip::create('/path/to/my/file3.zip') );
    
    
  • Extract zips:, (*27)

    // separate content in folders
    $extract = $manager->extract('/path/to/uncompressed/files', true);
    
    // use a single folder
    $extract = $manager->extract('/path/to/uncompressed/files', false);
    
    // extract single file
    $extract = $manager->extract('/path/to/uncompressed/files', false, 'file');
    
    // extract multiple files
    $extract = $manager->extract('/path/to/uncompressed/files', false, array('file1','file2'));
    
    
  • Merge zips:, (*28)

    // separate content in folders
    $manager->merge('/path/to/output/file.zip', true);
    
    // flatten files
    $manager->merge('/path/to/output/file.zip', false);
    
    
  • Close zips:, (*29)

    $manager->close();
    
    

Additional methods

  • Declare path from which add files:, (*30)

    // set path
    $zip->setPath('/path/to/files');
    
    // get path
    $path = $zip->getPath();
    
    
  • Use a mask != 0777 for created folders, (*31)

    // set masks
    $manager->setMask(0644);
    
    // get masks
    $mask = $manager->getMask();
    
    

The Versions

11/10 2017

dev-master

9999999-dev http://www.zanysoft.co

ZipArchive toolbox

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

merge multiple zip unzip ziparchive

10/10 2017

1.0.3

1.0.3.0 http://www.zanysoft.co

ZipArchive toolbox

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

merge multiple zip unzip ziparchive

26/05 2017

1.0.2

1.0.2.0 http://www.zanysoft.co

ZipArchive toolbox

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

merge multiple zip unzip ziparchive