Extracting files from .phar archive

PhpPhar

Php Problem Overview


There is something I entirely missed as for phar files. I am installing a project that requires phpunit, pdepend and other dependencies. I fetched them as .phar files. But, I am not able ot extract the files from them using command line tool (php command). I googled the problem, and I found nothing really answering the question. Could anyone help ?

Php Solutions


Solution 1 - Php

Extending on @pozs’s answer, you can actually use PharData->extractTo in a simple one-liner:

php -r '$phar = new Phar("phar-file.phar"); $phar->extractTo("./directory");'

Solution 2 - Php

Not sure if it's new, but under PHP 5.4.16 this works:

phar extract -f %some phar file%

The phar is extracted relative to your current working directory.

Solution 3 - Php

Yes, this library can do it: https://github.com/koto/phar-util

> phar-extract library.phar output-directory

Solution 4 - Php

PhpStorm IDE can be used for viewing content of phar archives.

Solution 5 - Php

This site converts .phar files to .zip files easily.

Try it out.

Solution 6 - Php

If you want to just using it, you should include as phar:///path/to/myphar.phar/file.php.

But if you really want to unpack it, see the PharData class - no known (internal) extraction in command line, but you can write a script for that.

Solution 7 - Php

PHP also has functions for extracting phar archives, but the files keep the current compression. To properly extract an archive it has to be converted into a uncompressed form first and then extracted:

<?php
$phar = new Phar('Someclass.phar');
$phar2 = $phar->convertToExecutable (Phar::TAR,Phar::NONE); // Convert to an uncompressed tar archive
$phar2->extractTo('/some/path/'); // Extract all files

This will give you all the files uncompressed!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionepsilonesView Question on Stackoverflow
Solution 1 - PhpAdrian HeineView Answer on Stackoverflow
Solution 2 - PhplyteView Answer on Stackoverflow
Solution 3 - PhpnoetixView Answer on Stackoverflow
Solution 4 - Phpya.teckView Answer on Stackoverflow
Solution 5 - PhpnajuView Answer on Stackoverflow
Solution 6 - PhppozsView Answer on Stackoverflow
Solution 7 - PhpJosefView Answer on Stackoverflow