a-blog cms PHP API Reference

PerpetualLicenseCheckpoint
in package

FinalYes

CMS-6328: 買い切り(永続)ライセンスで運用されているドメインでは、 サブスクリプションのアクティベーション通信(mypage への POST)は呼ぶ前から失敗が 確定しており不要、という判定を記録・再利用するための純粋ロジック。

license.php(買い切りライセンス本体)は難読化されて配布されるため、事前に内容だけを 静的解析することはできない。そのため「require せずに先読みして通信要否を決める」のではなく、 既に安全に require された直後(Application::loadLicense() の買い切りフォールバック分岐)の 検証結果を、ファイルの指紋(sha1 ハッシュ値)とセットで記録し、次回以降の通信要否判定に使い回す。

グローバル状態・ファイル I/O には一切触れない(呼び出し側の Application に閉じ、LocalStorage 経由で ファイル操作を行う)。

Table of Contents

Methods

buildContent()  : string
記録用ファイルの内容を組み立てる。license.php と異なり define() を使う PHP ソースではなく、 LocalStorage::get() で読んだ文字列をそのまま json_decode() できる単純な JSON にすることで、 グローバル定数の二重定義問題や PHP コードの実行を一切生じさせない。
hasChanged()  : bool
前回の記録と比べて書き込みが必要か(内容に変化があるか)を判定する。
shouldSkipActivation()  : bool
直近の記録から、今回はアクティベーション通信を省略してよいかを判定する。

Methods

buildContent()

記録用ファイルの内容を組み立てる。license.php と異なり define() を使う PHP ソースではなく、 LocalStorage::get() で読んだ文字列をそのまま json_decode() できる単純な JSON にすることで、 グローバル定数の二重定義問題や PHP コードの実行を一切生じさせない。

public static buildContent(string $currentLicenseFileHash, bool $authorized) : string
Parameters
$currentLicenseFileHash : string
$authorized : bool
Return values
string

hasChanged()

前回の記録と比べて書き込みが必要か(内容に変化があるか)を判定する。

public static hasChanged(array{hash?: mixed, authorized?: mixed}|null $storedFlag, string $currentLicenseFileHash, bool $authorized) : bool
Parameters
$storedFlag : array{hash?: mixed, authorized?: mixed}|null

前回記録された内容(無ければ null)

$currentLicenseFileHash : string
$authorized : bool
Return values
bool

shouldSkipActivation()

直近の記録から、今回はアクティベーション通信を省略してよいかを判定する。

public static shouldSkipActivation(array{hash?: mixed, authorized?: mixed}|null $storedFlag, string $currentLicenseFileHash) : bool
Parameters
$storedFlag : array{hash?: mixed, authorized?: mixed}|null

前回記録された内容(無ければ null)

$currentLicenseFileHash : string

今回の license.php の sha1 ハッシュ値

Return values
bool

        
On this page

Search results