PHP 8.5.0 Alpha 2 available for testing

Phar::convertToExecutable

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

Phar::convertToExecutableConvierte un archivo phar a otro formato de archivo de archivo phar ejecutable

Descripción

public Phar::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

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.

Este método se utiliza para convertir un archivo phar a otro formato de archivo. Por ejemplo, puede ser utilizado para crear un archivo phar basado en tar a partir de un archivo phar basado en zip o a partir de un archivo phar ejecutable basado en el formato de archivo phar. Asimismo, puede ser utilizado para aplicar una compresión global a un archivo basado en tar o en phar.

Si no se especifica ningún cambio, este método lanza una excepción BadMethodCallException.

En caso de éxito, el método crea un nuevo archivo en el disco y devuelve un objeto Phar. El archivo antiguo no es eliminado del disco, lo cual debe hacerse manualmente al final del procedimiento.

Parámetros

format

Debe ser uno de los formatos Phar::PHAR, Phar::TAR, o Phar::ZIP. Si este argumento es null, el formato de archivo actual será conservado.

compression

Debe ser Phar::NONE para ninguna compresión global, Phar::GZ para una compresión basada en zlib y Phar::BZ2 para una compresión basada en bzip2.

extension

Este argumento se utiliza para sobrescribir la extensión por defecto de un archivo convertido. Cabe señalar que todos los archivos phar basados en zip o en tar deben contener .phar en su extensión para ser tratados como un archivo phar.

Si se convierte a un archivo basado en phar, las extensiones por defecto son .phar, .phar.gz, o .phar.bz2 según la compresión especificada. Para los archivos phar basados en tar, las extensiones por defecto son .phar.tar, .phar.tar.gz, y .phar.tar.bz2. Para los archivos phar basados en zip, la extensión por defecto es .phar.zip.

Valores devueltos

El método devuelve un objeto Phar en caso de éxito, o null en caso de fallo.

Errores/Excepciones

Este método lanza una excepción BadMethodCallException si no es capaz de comprimir, si se ha especificado un método de compresión desconocido o si el archivo solicitado ha sido almacenado en búfer con Phar::startBuffering() sin ser concluido con Phar::stopBuffering(), lanza una excepción UnexpectedValueException si el soporte de escritura ha sido desactivado y lanza una excepción PharException si se ha encontrado algún problema durante la fase de creación del archivo.

Historial de cambios

Versión Descripción
8.0.0 format, compression, y extension ahora son nullable.

Ejemplos

Ejemplo #1 Un ejemplo con Phar::convertToExecutable()

Utilicemos Phar::convertToExecutable() :

<?php
try {
$tarphar = new Phar('monphar.phar.tar');
// se convierte al formato de archivo phar
// note que monphar.phar.tar *no* es borrado
$phar = $tarphar->convertToExecutable(Phar::PHAR); // crea monphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// crea monphar.phar.tgz
$compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (
Exception $e) {
// se manejan los errores aquí
}
?>

Ver también

add a note

User Contributed Notes 1 note

up
0
alex at phpguide dot co dot il
14 years ago
Convert to executable and compress methods override any stub you have created with their own stub which is responsible for extracting/executing self's content.

calling setStub() after convertingToExecutable doesn't help either. As far of php 5.3.6 (phar 2.0.1 ) if you want to have a phar archive accessible threw the web, you'll have to create your own
index.php which will include a nonexecutable phar and act as the bootstrap.
To Top