【PHP8.x】Phar::CURRENT_AS_PATHNAME定数の使い方
CURRENT_AS_PATHNAME定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Phar::CURRENT_AS_PATHNAME定数は、PHPのPhar拡張機能で使用され、Pharアーカイブ内のエントリ(ファイルやディレクトリ)の情報を、アーカイブからの相対パス名として取得することを指定する定数です。Pharアーカイブは、複数のPHPスクリプトやリソースファイルを一つのアーカイブファイルにまとめるための形式です。
この定数は、主にPharアーカイブの内容を順に処理するためのイテレーター(例えばPharクラスやRecursiveIteratorIteratorクラス)に渡すフラグとして利用されます。イテレーターにPhar::CURRENT_AS_PATHNAME定数を指定すると、イテレーターが各エントリを処理する際に、そのエントリ自身のファイル情報オブジェクトではなく、アーカイブのルートディレクトリからの相対的なパス名を示す文字列を返します。
たとえば、my_app.pharというアーカイブ内にsrc/Controller/Index.phpというファイルが存在する場合、この定数を使用するとsrc/Controller/Index.phpという文字列としてパス名を取得できます。これは、アーカイブ内の特定のエントリを、そのパス名で直接参照したり、表示したりする際に非常に便利です。SplFileInfoオブジェクトのような詳細なファイル情報が不要で、純粋なパス名文字列が必要な場合に選択します。
構文(syntax)
1<?php 2$phar = new Phar('archive.phar'); 3 4$iterator = new RecursiveIteratorIterator( 5 $phar, 6 RecursiveIteratorIterator::LEAVES_ONLY | Phar::CURRENT_AS_PATHNAME 7); 8 9foreach ($iterator as $entryPath) { 10 // $entryPath には、Pharアーカイブ内のエントリのパス名(文字列)が格納されます。 11}
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
Phar::CURRENT_AS_PATHNAME は、現在の Phar アーカイブ内のエントリを、その名前(パス名)として取得することを指定するための整数定数です。