Я кое-что пропустил, что касается файлов phar. Я устанавливаю проект, который требует phpunit, pdepend и других зависимостей. Я отобрал их как .phar-файлы. Но я не могу извлечь файлы из них, используя инструмент командной строки (команда php). Я искал проблему, и я ничего не ответил на этот вопрос. Может ли кто-нибудь помочь?
Да, эта библиотека может это сделать: https://github.com/koto/phar-util
php-extract library.phar output-directory
Расширяясь на ответ @ pozs, вы можете использовать PharData-> extractTo в простой однострочной линии :
php -r '$phar = new Phar("phar-file.phar"); $phar->extractTo("./directory");'
Не уверен, что он новый, но в PHP 5.4.16 это работает:
phar extract -f %some phar file%
Phar извлекается относительно вашего текущего рабочего каталога.
Если вы хотите просто использовать его, вы должны включить его как phar:///path/to/myphar.phar/file.php
.
Но если вы действительно хотите его распаковать, см. Класс PharData – неизвестного (внутреннего) извлечения в командной строке, но вы можете написать для этого сценарий.
IDE PhpStorm можно использовать для просмотра содержимого phar-архивов.
Php также имеет функции для извлечения phar-архивов, но файлы сохраняют текущее сжатие. Чтобы правильно извлечь архив, он сначала должен быть преобразован в незашифрованную форму, а затем извлечен.
<?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
Это даст вам все файлы без сжатия!