buildFromDirectory won't add empty subdirectories on 7.2
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::buildFromDirectory — ディレクトリ内のファイルから tar/zip アーカイブを作成する
ディレクトリの中身をもとに tar/zip アーカイブを作成します。 オプションの 2 番目のパラメータで正規表現 (pcre) を指定すると、特定のファイルを除外することができます。 正規表現にマッチするすべてのファイルがアーカイブに含められ、 それ以外のファイルは除外されます。より詳細に制御するには PharData::buildFromIterator() を使用します。
directory
アーカイブに追加するすべてのファイルを含むディレクトリへの フルパスあるいは相対パス。
pattern
オプションで指定する pcre 正規表現。 これを使用してファイル一覧をフィルタリングします。 正規表現にマッチするファイルパスのみがアーカイブに追加されます。
Phar::buildFromDirectory()
は、連想配列を返します。これは、
ファイルの内部パスをファイルシステム上のフルパスを対応させたものです。
失敗した場合に false
を返します
このメソッドは、内部ディレクトリイテレータのインスタンスの作成に失敗したときに BadMethodCallException をスローします。 また、phar アーカイブの保存時にエラーが発生した場合は PharException をスローします。
バージョン | 説明 |
---|---|
8.1.0 |
PharData::buildFromDirectory() は、
false を返さなくなりました。
|
例1 PharData::buildFromDirectory() の例
<?php
$phar = new PharData('project.tar');
// project 内のすべてのファイルを追加します
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar2 = new PharData('project2.zip');
// project 内のファイルのうち、php ファイルだけを追加します
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>