Phar::offsetSet
内部ファイルに、外部ファイルの内容を設定する
説明
public void Phar::offsetSet(string $localName
, resourcestring $value
)
注意:
このメソッドは、php.ini の phar.readonly
が 0
でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
これは ArrayAccess インターフェイスを実装したものです。
これにより、Phar アーカイブの内容に対して配列形式の角括弧を使用したアクセスが可能となります。
offsetSet を使用して、Phar アーカイブの既存ファイルの変更や
新しいファイルの追加を行います。
パラメータ
-
localName
-
Phar 内で変更するファイル名 (相対パス)。
-
value
-
ファイルの内容。
エラー / 例外
phar.readonly に 1
の場合は
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::buildFromDirectory や Phar::buildFromIterator を使うべきです。
参考
- Phar::offsetExists
- Phar::offsetGet
- Phar::offsetUnset