in-memory ZipArchive
オープン
まだ誰も着手していません。
Extension: zip
Feature
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.2k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
Description
Currently ZipArchive relies on the filesystem, for both opening and extracting files.
Would it be possible to have it work with files (or data) in memory? Or is that a limitation of the underlying zip library?
Below is an example of ZipArchive not being able to open files from a virtual file system (probably because it's a stream).
$vfs = \org\bovigo\vfs\vfsStream::setup();
copy('foo.zip', $vfs->url() . '/foo.zip');
var_dump(file_get_contents($vfs->url() . '/foo.zip')); // file contents appears
$zip = new ZipArchive();
$zip->open($vfs->url() . '/foo.zip');
$zip->extractTo(__DIR__); // Uncaught ValueError: Invalid or uninitialized Zip object
$zip->close();
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、vfsStream の例に示されている ZipArchive open() と extractTo() の動作から始め、基盤となる zip library が streams または in-memory data をサポートしているかを調査します。ZipArchive が通常のファイルシステムパスに依存せず、仮想ファイルシステムまたはメモリから提供されたアーカイブを開いて展開できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- c, php
- 領域
- backend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100