Phar::offsetSet

内部ファイルに、外部ファイルの内容を設定する

説明

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

注意:

このメソッドは、php.iniphar.readonly0 でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。

これは ArrayAccess インターフェイスを実装したものです。 これにより、Phar アーカイブの内容に対して配列形式の角括弧を使用したアクセスが可能となります。 offsetSet を使用して、Phar アーカイブの既存ファイルの変更や 新しいファイルの追加を行います。

パラメータ

localName

Phar 内で変更するファイル名 (相対パス)。

value

ファイルの内容。

戻り値

値を返しません。

エラー / 例外

phar.readonly1 の場合は BadMethodCallException がスローされます。 Phar の変更ができるのは phar.readonly が 0 のときだけだからです。Phar アーカイブへの変更をディスクに書き込む際に何らかのエラーが発生すると PharException がスローされます。

例1 Phar::offsetSet の例

offsetSet は直接使用してはいけません。 配列に [] 演算子でアクセスする際に使用されます。

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // offsetSet がコールされます
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'ファイルを変更できません: ', $e;
}
?>

注意

注意: Phar::addFile, Phar::addFromString, Phar::offsetSet は、呼び出されるたびに新しいPharアーカイブを生成します。パフォーマンスを気にするなら、代わりに Phar::buildFromDirectoryPhar::buildFromIterator を使うべきです。

参考

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