PharData::buildFromDirectory

Construct a tar/zip archive from the files within a directory

&reftitle.description; public `array` `PharData::buildFromDirectory` `string` `directory` `string` `pattern`""

Populate a tar/zip archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use `PharData::buildFromIterator`.

&reftitle.parameters;

`directory`

- The full or relative path to the directory that contains all files to add to the archive.

`pattern`

- An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

&reftitle.returnvalues;

`Phar::buildFromDirectory` returns an associative array mapping internal path of file to the full path of the file on the filesystem, &return.falseforfailure;.

&reftitle.errors;

This method throws `BadMethodCallException` when unable to instantiate the internal directory iterators, or a `PharException` if there were errors saving the phar archive.

&reftitle.changelog;

&Version; | &Description;
8.1.0 | `PharData::buildFromDirectory` no longer returns &false;.

&reftitle.examples;

### A `PharData::buildFromDirectory` example

    <?php
    $phar = new PharData('project.tar');
    // add all files in the project
    $phar->buildFromDirectory(dirname(__FILE__) . '/project');

    $phar2 = new PharData('project2.zip');
    // add all files in the project, only include php files
    $phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
    ?>

&reftitle.seealso;

- `Phar::buildFromDirectory`
- `PharData::buildFromIterator`