Phar::__construct

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

Phar::__constructConstruir un objeto de archivo Phar

Descripción

public Phar::__construct(string $fname, int $flags = ?, string $alias = ?)

Parámetros

fname

Ruta a un archivo Phar existente o para ser creado La extensión del nombre del fichero debe contener .phar.

flags

Banderas a pasar a la clase padre RecursiveDirectoryIterator.

alias

Alias con el que referirse al archivo Phar en las llamadas a funcionalidades de flujos.

Errores/Excepciones

Lanza una excepción de tipo BadMethodCallException si se llama dos veces, o una excepción de tipo UnexpectedValueException si no se puede abrir el archivo phar.

Ejemplos

Ejemplo #1 Un ejemplo de Phar::__construct()

<?php
try {
$p = new Phar('/ruta/a/mi.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
'mi.phar');
} catch (
UnexpectedValueException $e) {
die(
'No se pudo abrir mi.phar');
} catch (
BadMethodCallException $e) {
echo
'Técnicamente esto no puede suceder';
}
// esto funciona ahora
echo file_get_contents('phar://mi.phar/ejemplo.txt');
// y funciona si hemos escrito
echo file_get_contents('phar:///ruta/a/mi.phar/ejemplo.txt');
?>

add a note add a note

User Contributed Notes 2 notes

up
1
myselfasunder at findmenow dot gmail dot com
13 years ago
Zip support seems to be shaky, in that just attempting to open a Zip file (created by 7-Zip) with both the 'zlib' and 'zip' extensions enabled renders the following error:

Error: Cannot convert phar archive "C:/Development/webdir/public_html/TestPhar.zip", unable to open entry "TestPhar/" contents: phar error: internal corruption of zip-based phar "C:/Development/webdir/public_html/TestPhar.zip" (local header of file "TestPhar/" does not match central directory)

Stick to GZ's and BZ2's (but don't forget to enable the BZ2 extension if necessary).

Phar can ONLY open executable Phar's and PharData can ONLY open non-executable Phar's. Both have the ability to convert between the two formats.

However, you can reference a file within a Phar regardless of whether it's executable using the Phar stream wrapper (file_get_contents('phar://<Phar file>/subdirectory/subdirectory/somefile.txt')).

Dustin Oprea
up
0
Christian
13 years ago
It's not possible to create a new archive when safe_mode is enabled! You simply return a 'Phar creation or opening failed' error.
This applies to Phar and PharData in PHP 5.3.2.
To Top