Использование 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. Обертку потока лучше всего использовать только для чтения.