Phar::offsetSet

Set the contents of an internal file to those of an external file

Description

public void Phar::offsetSet(string $localName, resourcestring $value)

Note:

This method requires the php.ini setting phar.readonly to be set to 0 in order to work for Phar objects. Otherwise, a PharException will be thrown.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

Parameters

localName

The filename (relative path) to modify in a Phar.

value

Content of the file.

Return Values

No return values.

Errors/Exceptions

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Examples

Example #1 A Phar::offsetSet example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Notes

Note: Phar::addFile, Phar::addFromString and Phar::offsetSet save a new phar archive each time they are called. If performance is a concern, Phar::buildFromDirectory or Phar::buildFromIterator should be used instead.

See Also

  • Phar::offsetExists
  • Phar::offsetGet
  • Phar::offsetUnset