Phar::offsetSet
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::offsetSet — 内部ファイルに、外部ファイルの内容を設定する
説明
注意:
このメソッドは、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 内に存在するかどうかを調べる
- Phar::offsetGet() - 指定したファイルの PharFileInfo オブジェクトを取得する
- Phar::offsetUnset() - ファイルを phar から削除する