(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::offsetSet — Establece el contenido de un fichero interno en el archivo a partir del contenido de un fichero externo
Nota:
Este método requiere que la variable de configuración INI
phar.readonly
esté definida a0
para funcionar con los objetos Phar. De lo contrario, se lanzará una excepción PharException.
Es una implementación de la interfaz ArrayAccess que permite la manipulación directa del contenido de un archivo Phar utilizando los corchetes de acceso al array. offsetSet se utiliza para modificar un fichero existente o para añadir un nuevo fichero al archivo Phar.
localName
El nombre del fichero (en ruta relativa) a buscar en el Phar.
value
Contenido del fichero.
No se devuelve ningún valor.
Si phar.readonly está a 1
,
se lanza una excepción BadMethodCallException, ya que modificar un Phar solo es
permitido cuando phar.readonly está a 0
. Se lanza una excepción
PharException si ha habido un problema al escribir los cambios del archivo Phar en el disco.
Ejemplo #1 Un ejemplo con Phar::offsetSet()
offsetSet no debe ser accedido directamente, sino a través del operador de acceso al array, []
.
<?php
$p = new Phar('/ruta/al/mon.phar', 0, 'mon.phar');
try {
// llama a offsetSet
$p['fichero.txt'] = 'Hola';
} catch (Exception $e) {
echo 'No puede modificar fichero.txt:', $e;
}
?>
Nota: Phar::addFile(), Phar::addFromString() y Phar::offsetSet() registran un nuevo archivo phar cada vez que son llamadas. Si las prestaciones son una preocupación, Phar::buildFromDirectory() o Phar::buildFromIterator() deberían ser utilizadas en su lugar.