a-blog cms PHP API Reference

WebpConvertRepository
in package

webp_support 有効化前に生成された過去画像を、WebP へ変換する。

対象は指定ディレクトリ配下の jpg/jpeg/png のうち、同名の .webp が まだ存在しないファイルのみ。既に .webp があるファイルは対象外(冪等)。

Table of Contents

Constants

CONVERT_TARGET_EXTENSIONS  = ['jpg', 'jpeg', 'png']

Properties

$engine  : ImageEngine
$targetDirs  : array<string|int, string>

Methods

__construct()  : mixed
collectTargetFiles()  : array<string|int, string>
対象ディレクトリを再帰走査し、WebP変換対象ファイルのパス一覧を取得する
convert()  : void
1件のファイルをWebPに変換する
convertAll()  : array{success: int, error: int, terminated: bool}
対象ファイルをまとめてWebPに変換する
isConvertTarget()  : bool
指定パスがWebP変換対象か判定する
isWebpSupported()  : bool
WebP変換がサポートされている環境か判定する
walkDirectory()  : void
ディレクトリを再帰走査し、変換対象ファイルを $targets に追記する

Constants

Properties

Methods

__construct()

public __construct(array<string|int, string> $targetDirs[, ImageEngine|null $engine = null ]) : mixed
Parameters
$targetDirs : array<string|int, string>

走査対象のディレクトリ一覧

$engine : ImageEngine|null = null

未指定時は image.engine サービスを使用

collectTargetFiles()

対象ディレクトリを再帰走査し、WebP変換対象ファイルのパス一覧を取得する

public collectTargetFiles([callable(): bool|null $shouldTerminate = null ]) : array<string|int, string>
Parameters
$shouldTerminate : callable(): bool|null = null

中止要求の判定。走査を途中で打ち切る

Return values
array<string|int, string>

convert()

1件のファイルをWebPに変換する

public convert(string $path) : void
Parameters
$path : string

convertAll()

対象ファイルをまとめてWebPに変換する

public convertAll(array<string|int, string> $targets[, callable(): bool|null $shouldTerminate = null ][, callable(int, string): void|null $onProgress = null ][, callable(string, Throwable): void|null $onError = null ]) : array{success: int, error: int, terminated: bool}

1件ごとに $shouldTerminate を評価し、中止要求があればその時点で打ち切る。個別ファイルの 変換失敗は握って次のファイルへ進み、失敗件数として返す。

ロガーや監査ログへの記録をコールバックで受け取るのは、呼び出し元(POSTハンドラ)の グローバル状態に依存せずこのメソッド単体をテストできるようにするため。

Parameters
$targets : array<string|int, string>
$shouldTerminate : callable(): bool|null = null

中止要求の判定

$onProgress : callable(int, string): void|null = null

変換前の進捗通知(0始まりの連番とパス)

$onError : callable(string, Throwable): void|null = null

変換失敗時の通知

Return values
array{success: int, error: int, terminated: bool}

isConvertTarget()

指定パスがWebP変換対象か判定する

public isConvertTarget(string $path) : bool
Parameters
$path : string
Return values
bool

isWebpSupported()

WebP変換がサポートされている環境か判定する

public isWebpSupported() : bool

webp_support 設定やGD/ImagickのWebP対応状況によっては、変換を実行しても ImageEngine が例外を投げずに何もしない(後述 copyImageAsWebp 参照)ため、 呼び出し側は本メソッドで事前に判定し、無変換のまま成功扱いにしないこと。

Return values
bool

walkDirectory()

ディレクトリを再帰走査し、変換対象ファイルを $targets に追記する

private walkDirectory(string $dir, array<string|int, string> &$targets[, callable(): bool|null $shouldTerminate = null ]) : void
Parameters
$dir : string
$targets : array<string|int, string>
$shouldTerminate : callable(): bool|null = null

        
On this page

Search results