Phar クラス

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

はじめに

Phar クラスは、phar アーカイブへのアクセスや作成のための高レベルインターフェイスを提供します。

クラス概要

class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* 継承した定数 */
/* 定数 */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int SHA1;
const int SHA256;
const int SHA512;
/* メソッド */
public __construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
final public static apiVersion(): string
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
final public static canCompress(int $compression = 0): bool
final public static canWrite(): bool
public compress(int $compression, ?string $extension = null): ?Phar
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public count(int $mode = COUNT_NORMAL): int
final public static createDefaultStub(?string $index = null, ?string $webIndex = null): string
public decompress(?string $extension = null): ?Phar
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public getAlias(): ?string
public getMetadata(array $unserializeOptions = []): mixed
public getModified(): bool
public getPath(): string
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isFileFormat(int $format): bool
final public static isValidPharFilename(string $filename, bool $executable = true): bool
public isWritable(): bool
final public static loadPhar(string $filename, ?string $alias = null): bool
final public static mapPhar(?string $alias = null, int $offset = 0): bool
final public static mount(string $pharPath, string $externalPath): void
final public static mungServer(array $variables): void
public offsetExists(string $localName): bool
public offsetGet(string $localName): SplFileInfo
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
final public static running(bool $returnPhar = true): string
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(resource|string $stub, int $length = -1): bool
final public static unlinkArchive(string $filename): bool
final public static webPhar(
    ?string $alias = null,
    ?string $index = null,
    ?string $fileNotFoundScript = null,
    array $mimeTypes = [],
    ?callable $rewrite = null
): void
public __destruct()
/* 継承したメソッド */
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
}

目次

  • Phar::addEmptyDir — 空のディレクトリを phar アーカイブに追加する
  • Phar::addFile — ファイルシステム上のファイルを phar アーカイブに追加する
  • Phar::addFromString — 文字列から、ファイルを phar アーカイブに追加する
  • Phar::apiVersion — API のバージョンを返す
  • Phar::buildFromDirectory — ディレクトリ内のファイルから phar を作成する
  • Phar::buildFromIterator — イテレータから phar アーカイブを作成する
  • Phar::canCompress — phar 拡張モジュールが zlib あるいは bzip2 による圧縮をサポートしているかどうかを返す
  • Phar::canWrite — phar 拡張モジュールが phar の書き込みや作成をサポートしているかどうかを返す
  • Phar::compress — Phar アーカイブ全体を Gzip あるいは Bzip2 で圧縮する
  • Phar::compressFiles — 現在の Phar アーカイブ内のすべてのファイルを圧縮する
  • Phar::__construct — Phar アーカイブオブジェクトを作成する
  • Phar::convertToData — phar アーカイブを実行可能でない tar あるいは zip ファイルに変換する
  • Phar::convertToExecutable — phar アーカイブを実行可能な別の phar アーカイブ形式に変換する
  • Phar::copy — phar アーカイブ内のファイルを、phar 内で別の新しいファイルとしてコピーする
  • Phar::count — Phar アーカイブ内のエントリ (ファイル) の数を返す
  • Phar::createDefaultStub — phar ファイルフォーマット用のスタブを作成する
  • Phar::decompress — Phar アーカイブ全体の圧縮を解除する
  • Phar::decompressFiles — 現在の Phar アーカイブ内のすべてのファイルの圧縮を解除する
  • Phar::delMetadata — phar のグローバルメタデータを削除する
  • Phar::delete — phar アーカイブ内のファイルを削除する
  • Phar::__destruct — アクティブな Phar オブジェクトを破棄する
  • Phar::extractTo — phar アーカイブの内容をディレクトリに展開する
  • Phar::getAlias — Phar のエイリアスを取得する
  • Phar::getMetadata — phar アーカイブのメタデータを返す
  • Phar::getModified — phar が変更されているかどうかを返す
  • Phar::getPath — Pharアーカイブのディスク上の実際のパスを取得する
  • Phar::getSignature — Phar アーカイブの MD5/SHA1/SHA256/SHA512/OpenSSL シグネチャを返す
  • Phar::getStub — Phar アーカイブの PHP ローダーあるいは起動スタブを返す
  • Phar::getSupportedCompression — サポートする圧縮アルゴリズムの配列を返す
  • Phar::getSupportedSignatures — サポートするシグネチャ型の配列を返す
  • Phar::getVersion — Phar アーカイブのバージョン情報を返す
  • Phar::hasMetadata — ファイルがグローバルなメタデータを持つかどうかを返す
  • Phar::interceptFileFuncs — fopen、file_get_contents、opendir などの stat 関連の関数をすべて phar に横取りさせる
  • Phar::isBuffering — Phar の書き込み操作がバッファリングされるか、あるいは直接ディスクに書き込まれるかを調べる
  • Phar::isCompressed — phar アーカイブ全体が (.tar.gz/tar.bz などで) 圧縮されている場合に Phar::GZ あるいは PHAR::BZ2 を返す
  • Phar::isFileFormat — phar アーカイブが、パラメータで指定した tar/phar/zip のいずれかの形式である場合に true を返す
  • Phar::isValidPharFilename — 指定したファイル名が正しい形式の phar ファイルかどうかを返す
  • Phar::isWritable — phar アーカイブが変更可能な場合に true を返す
  • Phar::loadPhar — 任意の phar アーカイブを、エイリアスを指定して読み込む
  • Phar::mapPhar — 現在実行されている (phar 形式の) ファイルを読み込み、その内容を登録する
  • Phar::mount — 外部のパスあるいはファイルを phar アーカイブ内に仮想的にマウントする
  • Phar::mungServer — 最大 4 つまでの $_SERVER 変数を実行時に変更させる
  • Phar::offsetExists — ファイルが phar 内に存在するかどうかを調べる
  • Phar::offsetGet — 指定したファイルの PharFileInfo オブジェクトを取得する
  • Phar::offsetSet — 内部ファイルに、外部ファイルの内容を設定する
  • Phar::offsetUnset — ファイルを phar から削除する
  • Phar::running — 現在実行中の Phar アーカイブのフルパスあるいは完全な phar URL を返す
  • Phar::setAlias — Phar アーカイブのエイリアスを設定する
  • Phar::setDefaultStub — Phar アーカイブの PHP ローダー (起動スタブ) をデフォルトのローダーに設定する
  • Phar::setMetadata — phar アーカイブのメタデータを設定する
  • Phar::setSignatureAlgorithm — phar のシグネチャのアルゴリズムを設定して適用する
  • Phar::setStub — Phar アーカイブの PHP ローダ (あるいは起動スタブ) を設定する
  • Phar::startBuffering — Phar の書き込み操作のバッファリングを開始するが、ディスク上の Phar オブジェクトは変更しない
  • Phar::stopBuffering — Phar アーカイブへの書き込みリクエストのバッファリングを終了し、変更内容をディスクに書き込む
  • Phar::unlinkArchive — phar アーカイブをディスクとメモリから完全に削除する
  • Phar::webPhar — ブラウザからのリクエストを、phar アーカイブ内部のファイルに転送する
add a note add a note

User Contributed Notes 2 notes

up
-4
cornelius dot howl at gmail dot com
13 years ago
Onion utility can help you compile a package into a phar file (executable script file or library file)

https://github.com/c9s/Onion

   $ onion.phar compile \
    --executable \
    --classloader \
    --bootstrap scripts/onion.embed \
    --lib src \
    --lib ../CLIFramework/src \
    --lib ../GetOptionKit/src \
    --output onion.phar
up
-8
halfdan
16 years ago
Hey, I thought writing a small article about the upcoming functionality and appearance of Phar in php5.3 might be a nice thing. So I did this at http://geekmonkey.org/articles/PHP_Archives - hope to save others some time when working with Phar.
To Top