ディレクトリ内のファイルから tar/zip アーカイブを作成する

# PharData::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromDirectory — ディレクトリ内のファイルから tar/zip アーカイブを作成する

### 説明

public function PharData::buildFromDirectory(string `$directory`, string `$pattern` = ""): array

ディレクトリの中身をもとに 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$/');
    ?>

### 参考

- Phar::buildFromDirectory() - ディレクトリ内のファイルから phar を作成する
- PharData::buildFromIterator() - イテレータから tar あるいは zip アーカイブを作成する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open