Phar::buildFromDirectory
ディレクトリ内のファイルから phar を作成する
説明
public array Phar::buildFromDirectory(string $directory
, string $pattern
= "")
注意:
このメソッドは、php.ini の phar.readonly
が 0
でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
ディレクトリの中身をもとに phar アーカイブを作成します。
オプションの 2 番目のパラメータで正規表現 (pcre)
を指定すると、特定のファイルを除外することができます。
正規表現にマッチするすべてのファイルがアーカイブに含められ、
それ以外のファイルは除外されます。より詳細に制御するには
Phar::buildFromIterator を使用します。
パラメータ
-
directory
-
アーカイブに追加するすべてのファイルを含むディレクトリへの
フルパスあるいは相対パス。
-
pattern
-
オプションで指定する pcre 正規表現。
これを使用してファイル一覧をフィルタリングします。
正規表現にマッチするファイルパスのみがアーカイブに追加されます。
戻り値
Phar::buildFromDirectory
は、連想配列を返します。これは、
ファイルの内部パスをファイルシステム上のフルパスを対応させたものです。
エラー / 例外
このメソッドは、内部ディレクトリイテレータのインスタンスの作成に失敗したときに
BadMethodCallException をスローします。
また、phar アーカイブの保存時にエラーが発生した場合は
PharException をスローします。
例
例1 Phar::buildFromDirectory の例
<?php
// "project.phar" というエイリアスで作成します
$phar = new Phar('project.phar', 0, 'project.phar');
// project 内のすべてのファイルを追加します
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// project 内のファイルのうち、php ファイルだけを追加します
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>