BcZip
in package
Class BcZip
Table of Contents
Properties
- $error : null
- error
- $topArchiveName : null
- Top Archive Name
- $Zip : bool|ZipArchive
- ZipArchive
Methods
- __construct() : mixed
- BcZip constructor.
- create() : void
- zip生成
- extract() : bool
- ZIP を展開する
- _escapePath() : string
- CUI 向けにパスをエスケープする
- _extractByCommand() : bool
- コマンドによる展開
- _extractByPhpLib() : bool
- ZipArchive クラスによる展開
- _getTopArchiveName() : string|false
- エントリ名から最上位のディレクトリ名(展開後のトップフォルダ名)を求める
- _isZipEntrySafe() : bool
- ZIPエントリがターゲット配下か確認する
- _normalizeAbsolutePath() : string|null
- 絶対パスを正規化する
- _normalizeRelativePath() : string|null
- 相対パスを正規化する
- _normalizeTargetPath() : string|false
- 展開先ディレクトリの正規化
- _removeSymlinks() : bool
- 展開したアーカイブのエントリのうちシンボリックリンクとして復元されたものを削除する
- _validateZipEntries() : bool
- ZIPエントリ一覧を検証する
- zipSub() : void
- 再帰的にzip生成対象ファイルを追加する
Properties
$error
error
public
null
$error
= null
$topArchiveName
Top Archive Name
public
null
$topArchiveName
= null
$Zip
ZipArchive
public
bool|ZipArchive
$Zip
= false
Methods
__construct()
BcZip constructor.
public
__construct() : mixed
Tags
create()
zip生成
public
create(string $sorce, string $dist) : void
Parameters
- $sorce : string
-
元データ
- $dist : string
-
出力先
Tags
extract()
ZIP を展開する
public
extract(mixed $source, mixed $target) : bool
Parameters
- $source : mixed
- $target : mixed
Tags
Return values
bool_escapePath()
CUI 向けにパスをエスケープする
protected
_escapePath(mixed $path) : string
Parameters
- $path : mixed
Tags
Return values
string_extractByCommand()
コマンドによる展開
protected
_extractByCommand(mixed $source, mixed $target) : bool
Parameters
- $source : mixed
- $target : mixed
Tags
Return values
bool_extractByPhpLib()
ZipArchive クラスによる展開
protected
_extractByPhpLib(mixed $source, mixed $target) : bool
Parameters
- $source : mixed
- $target : mixed
Tags
Return values
bool_getTopArchiveName()
エントリ名から最上位のディレクトリ名(展開後のトップフォルダ名)を求める
protected
_getTopArchiveName(string $entry) : string|false
./Foo/bar のようなエントリ名を生のまま分割すると最上位が . になり、呼び出し元が
展開先の親ディレクトリ全体(tmp/ 等)を移動・削除してしまう。正規化したパスの先頭要素を返し、
空・.・.. など妥当でない場合は false を返す。
Parameters
- $entry : string
Tags
Return values
string|false_isZipEntrySafe()
ZIPエントリがターゲット配下か確認する
protected
_isZipEntrySafe(string $entry, string $targetPath) : bool
Parameters
- $entry : string
- $targetPath : string
Tags
Return values
bool_normalizeAbsolutePath()
絶対パスを正規化する
protected
_normalizeAbsolutePath(string $path) : string|null
Parameters
- $path : string
Tags
Return values
string|null_normalizeRelativePath()
相対パスを正規化する
protected
_normalizeRelativePath(string $path) : string|null
Parameters
- $path : string
Tags
Return values
string|null_normalizeTargetPath()
展開先ディレクトリの正規化
protected
_normalizeTargetPath(string $target) : string|false
展開前検証用に、存在しない場合は親ディレクトリで解決して基準パスを作る。
Parameters
- $target : string
Tags
Return values
string|false_removeSymlinks()
展開したアーカイブのエントリのうちシンボリックリンクとして復元されたものを削除する
protected
_removeSymlinks(string $target, array<string|int, mixed> $entries) : bool
展開先(TMP や vendor)に元から存在するリンクには影響しないよう、 アーカイブのエントリに対応するパスのみを対象とする
Parameters
- $target : string
-
展開先
- $entries : array<string|int, mixed>
-
アーカイブのエントリ一覧
Tags
Return values
bool —リンクが存在した場合 true
_validateZipEntries()
ZIPエントリ一覧を検証する
protected
_validateZipEntries(string $targetPath) : bool
Parameters
- $targetPath : string
Tags
Return values
boolzipSub()
再帰的にzip生成対象ファイルを追加する
private
zipSub(ZipArchive $za, string $path[, string $parentPath = '' ]) : void
Parameters
- $za : ZipArchive
- $path : string
- $parentPath : string = ''