|
Phar::buildFromIteratorイテレータから phar アーカイブを作成する 説明
public array Phar::buildFromIterator(Traversable
$iterator , stringnull $baseDirectory = null )
phar アーカイブをイテレータから作成します。 サポートするイテレータは二種類で、 phar 内のファイル名とディスク上の実際のファイル名を対応させたものか、あるいは DirectoryIterator のように SplFileInfo オブジェクトを返すものです。 SplFileInfo オブジェクトを返すイテレータの場合は、2 番目のパラメータが必要となります。 パラメータ
戻り値Phar::buildFromIterator は連想配列を返します。 これは、ファイルの内部パスとファイルシステム上のフルパスを対応させたものです。 エラー / 例外
このメソッドは、イテレータが間違った値 (たとえば文字列キーではなく整数キーなど)
を返した場合に UnexpectedValueException
を返します。また、SplFileInfo 型のイテレータを渡したときに
変更履歴
例例1 SplFileInfo を使用した Phar::buildFromIterator の例 ほとんどの phar アーカイブは、実際のディレクトリ構造を反映した形式になっています。 このような場合は 2 番目の方式が最適です。 たとえば、次のようなディレクトリ構成のファイルを含む phar アーカイブを作成してみることにしましょう。
/path/to/project/ config/ dist.xml debug.xml lib/ file1.php file2.php src/ processthing.php www/ index.php cli/ index.php 次のコードを使用すると、これらのファイルを phar アーカイブ "project.phar" に追加します。
これで、ファイル project.phar はすぐに使えるようになります。 Phar::buildFromIterator は圧縮やメタデータの設定を行いません。 これらは phar アーカイブを作成した後で行うことができます。 興味深いことに、Phar::buildFromIterator を使用して既存の phar アーカイブの中身をコピーすることもできます。 というのも Phar オブジェクトは DirectoryIterator を継承しているからです。
例2 その他のイテレータを使用した Phar::buildFromIterator の例 それ以外の形式のイテレータでは、 key => value の対応を返すものを使用できます。たとえば ArrayIterator などです。
参考
|