Использование Phar-архивов: обёртка потока phar

Обёртка потока Phar полностью поддерживает fopen() для чтения и записи (не для добавления), unlink(), stat(), fstat(), fseek(), rename() и потоковые операции каталогов, такие как opendir(), rmdir() и mkdir().

Также при помощи контекстов потока можно влиять на сжатие отдельных файлов и пофайловые метаданные в Phar-архиве:

<?php
$context
= stream_context_create(array('phar' =>
array(
'compress' => Phar::GZ)),
array(
'metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

Обёртка потока phar не работает с файлами, расположенными удалённо, и не может с ними работать, так что её использование возможно даже когда параметры INI allow_url_fopen и allow_url_include отключены.

Несмотря на наличие возможности создавать phar-архивы с нуля просто используя потоковые операции, лучшим решением будет использование функционала, встроенного в класс Phar. Обёртку потока лучше всего использовать только для чтения.