Phar::buildFromDirectory
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::buildFromDirectory — Construye un archivo phar a partir de los ficheros de un directorio
Descripción
public function Phar::buildFromDirectory(
string $directory,
string $pattern = ""):
array
Nota: Este
método requiere que la variable de configuración INI phar.readonly
esté definida a 0 para funcionar con los objetos Phar.
De lo contrario, se lanzará una excepción PharException.
Rellena un archivo phar a partir del contenido de un directorio. El segundo parámetro,
opcional, es una expresión regular (pcre) utilizada para excluir ficheros.
Todo fichero cuyo nombre cumpla la expresión regular será incluido, los demás serán excluidos.
Para un control más fino, utilice Phar::buildFromIterator().
Parámetros
directory
-
La ruta absoluta o relativa hacia el directorio que contiene todos los ficheros
a añadir al archivo.
pattern
-
Una expresión regular opcional utilizada para filtrar la lista
de ficheros. Solo los ficheros cuyo nombre cumpla la expresión regular
serán incluidos en el archivo.
Valores devueltos
Phar::buildFromDirectory() devuelve un array asociativo
que hace corresponder la ruta interna del fichero con la ruta completa en el sistema
de ficheros.
Errores/Excepciones
Este método lanza una excepción BadMethodCallException cuando no es
capaz de instanciar el iterador de directorio interno,
o una excepción PharException si ha habido errores durante
el guardado del archivo.
Ejemplos
Ejemplo #1 Un ejemplo con Phar::buildFromDirectory()
<?php
// crea con el alias "proyecto.phar"
$phar = new Phar('proyecto.phar', 0, 'proyecto.phar');
// añade ficheros en el proyecto
$phar->buildFromDirectory(dirname(__FILE__) . '/proyecto');
$phar->setStub($phar->createDefaultWebStub('cli/index.php', 'www/index.php'));
$phar2 = new Phar('proyecto2.phar', 0, 'proyecto2.phar');
// añade todos los ficheros en el proyecto, pero solo los ficheros .php
$phar->buildFromDirectory(dirname(__FILE__) . '/proyecto', '/\.php$/');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>