Phar::buildFromDirectory
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::buildFromDirectory — Constrói um arquivo phar a partir dos arquivos dentro de um diretório
Descrição
public function Phar::buildFromDirectory(
string $directory,
string $pattern = ""):
array
Nota: Este
método requer que a configuração phar.readonly do php.ini seja
definida como 0 para funcionar com objetos Phar.
Caso contrário, uma exceção PharException será lançada.
Preenche um arquivo phar a partir do conteúdo do diretório. O segundo parâmetro
opcional é uma expressão regular (pcre) usada para excluir arquivos.
Qualquer nome de arquivo que corresponda à expressão regular será incluído, todos os outros serão
excluídos. Para um controle mais refinado, use Phar::buildFromIterator().
Parâmetros
directory
-
O caminho completo ou relativo para o diretório que contém todos os arquivos
a serem adicionados ao arquivo.
pattern
-
Uma expressão regular pcre opcional usada para filtrar a
lista de arquivos. Somente caminhos de arquivo que correspondam à expressão regular
serão incluídos no arquivo.
Valor Retornado
Phar::buildFromDirectory() retorna um array associativo
mapeando o caminho interno do arquivo para o caminho completo do arquivo no
sistema de arquivos.
Erros/Exceções
Este método lança BadMethodCallException quando não é possível
instanciar os iteradores de diretório interno,
ou uma PharException se houver erros
ao salvar o arquivo phar.
Exemplos
Exemplo #1 Um exemplo de Phar::buildFromDirectory()
<?php
// cria com o apelido "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// adiciona todos os arquivos no projeto
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// adiciona todos os arquivos do projeto, inclui apenas arquivos php
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>