a-blog cms PHP API Reference

RestoreStatus
in package

バックアップのリストア進行状況を、DB に依存しないローカルファイルで管理する。

リストア中は DB のテーブルが入れ替わり一時的に利用できない状態になるため、 ブートストラップの DB 接続前に「復元中かどうか」を判定できる必要がある。 そのため WordPress の .maintenance ファイルと同様に、状態をローカルファイルへ書き出す。 保存先は他のロック/進捗ファイル(Lock や DB エクスポートの進捗 JSON)と揃えて CACHE_DIR 配下とする。

Table of Contents

Constants

DEFAULT_TTL  = 1800
`running` 状態をこの秒数を超えて保持していた場合、異常終了とみなして ロックを解除する。復元処理がクラッシュしてもサイトが永久にロックされるのを防ぐ。
STATE_FAILED  = 'failed'
復元処理が失敗して終了した
STATE_NONE  = 'none'
復元処理が行われていない(または完了済み)
STATE_RUNNING  = 'running'
復元処理が進行中

Properties

$path  : string
状態ファイルのパス
$ttl  : int
`running` を有効とみなす最大秒数

Methods

__construct()  : mixed
begin()  : void
復元開始を記録する。
defaultPath()  : string
状態ファイルの既定パス(CACHE_DIR 配下。Web 非公開)。
fail()  : void
復元失敗を記録する。開始時のトークン・開始時刻は引き継ぐ。
finish()  : void
復元完了として状態ファイルを削除する。
isActive()  : bool
復元処理が進行中でサイトをロックすべきかを返す。 `running` かつ TTL 内のときだけ true。失効した running や failed は false。
read()  : array<string, mixed>|null
状態ファイルの内容を返す。存在しない・読めない・壊れている場合は null。
toResponse()  : array{state: string, elapsed: int, message: string}
ステータス API(進捗ページのポーリング)用の配列を返す。
verifyToken()  : bool
復元を開始した操作者かどうかを、保存済みトークンと照合して判定する。 復元中は DB が利用できずセッション認証が使えないため、DB 非依存のトークンで識別する。
write()  : void
状態ファイルを書き出す。書き込みは安全装置のため、失敗してもリストア処理は継続させる。

Constants

DEFAULT_TTL

`running` 状態をこの秒数を超えて保持していた場合、異常終了とみなして ロックを解除する。復元処理がクラッシュしてもサイトが永久にロックされるのを防ぐ。

public mixed DEFAULT_TTL = 1800

STATE_FAILED

復元処理が失敗して終了した

public mixed STATE_FAILED = 'failed'

STATE_NONE

復元処理が行われていない(または完了済み)

public mixed STATE_NONE = 'none'

STATE_RUNNING

復元処理が進行中

public mixed STATE_RUNNING = 'running'

Properties

$ttl

`running` を有効とみなす最大秒数

private int $ttl

Methods

__construct()

public __construct([string|null $path = null ][, int $ttl = self::DEFAULT_TTL ]) : mixed
Parameters
$path : string|null = null

状態ファイルのパス(省略時は既定パス)

$ttl : int = self::DEFAULT_TTL

running を有効とみなす最大秒数

begin()

復元開始を記録する。

public begin([int|null $now = null ][, string $token = '' ]) : void
Parameters
$now : int|null = null

現在時刻(テスト用に注入可能)

$token : string = ''

操作者識別用トークン(Cookie と照合する)

defaultPath()

状態ファイルの既定パス(CACHE_DIR 配下。Web 非公開)。

public static defaultPath() : string
Return values
string

fail()

復元失敗を記録する。開始時のトークン・開始時刻は引き継ぐ。

public fail([string $message = '' ][, int|null $now = null ]) : void
Parameters
$message : string = ''

利用者へ示すメッセージ

$now : int|null = null

現在時刻(テスト用に注入可能)

finish()

復元完了として状態ファイルを削除する。

public finish() : void

isActive()

復元処理が進行中でサイトをロックすべきかを返す。 `running` かつ TTL 内のときだけ true。失効した running や failed は false。

public isActive([int|null $now = null ]) : bool
Parameters
$now : int|null = null

現在時刻(テスト用に注入可能)

Return values
bool

read()

状態ファイルの内容を返す。存在しない・読めない・壊れている場合は null。

public read() : array<string, mixed>|null
Return values
array<string, mixed>|null

toResponse()

ステータス API(進捗ページのポーリング)用の配列を返す。

public toResponse([int|null $now = null ]) : array{state: string, elapsed: int, message: string}
Parameters
$now : int|null = null

現在時刻(テスト用に注入可能)

Return values
array{state: string, elapsed: int, message: string}

verifyToken()

復元を開始した操作者かどうかを、保存済みトークンと照合して判定する。 復元中は DB が利用できずセッション認証が使えないため、DB 非依存のトークンで識別する。

public verifyToken(string|null $token) : bool
Parameters
$token : string|null

Cookie 等から受け取ったトークン

Return values
bool

write()

状態ファイルを書き出す。書き込みは安全装置のため、失敗してもリストア処理は継続させる。

private write(array<string, mixed> $data) : void
Parameters
$data : array<string, mixed>

        
On this page

Search results