a-blog cms PHP API Reference

Engine
in package

Table of Contents

Constants

ALLOWED_CONTENT_TYPES  = ['application/json', 'application/json; charset=utf-8', 'application/x-www-form-urlencoded', 'application/x-www-form-urlencoded; charset=utf-8']
Content-Type の許可リスト。許可リスト外の値が保存されていた場合は先頭の値にフォールバックする。
ALLOWED_METHODS  = ['POST', 'DELETE', 'PUT', 'PATCH', 'GET']
送信を許可する HTTP メソッド。
SENSITIVE_HEADER_NAMES  = ['Authorization', 'X-Api-Key', 'X-Auth-Token']
ログに記録する際、値をマスクする機密ヘッダー名。

Properties

$headerValidator  : HeaderValidator
$httpClient  : HttpClientInterface
$isProfessionalEditionResolver  : callable
$payload  : mixed
$whiteList  : array<string|int, mixed>

Methods

__construct()  : mixed
Engine constructor.
call()  : mixed
validateUrlScheme()  : bool
URLのスキーマが http or https か確認する
validateUrlWhiteList()  : bool
URLのホストがホワイトリストに含まれるか確認
buildHeaders()  : array<int, string>
ヘッダー配列の組み立て。 Standard エディションでは Content-Type 固定・カスタムヘッダー無視にフォールバックする。 カスタムヘッダーは HeaderValidator で全行検証し、1行でも不正な場合は送信全体を中止する。
buildPayload()  : mixed
buildRequestBody()  : string
リクエストボディの組み立て。GET には付与しない。
decodeHeaders()  : array<int, array{name?: string, value?: string}>
getHooks()  : mixed
getPayload()  : false|mixed
hookLogContext()  : array<string, mixed>
送信失敗時のログへ残す Webhook 設定。カスタムヘッダー(Authorization 等)と署名シークレットは 値を伏せる(送信ログのリクエストヘッダーを maskSensitiveHeaders で伏せているのと同じ理由)。
isProfessionalEdition()  : bool
Professional以上のエディションかどうかを判定する。 コンストラクタで注入されたcallable(未指定時はグローバル関数 editionWithProfessional())を使う。
maskSensitiveHeaders()  : string
機密ヘッダーの値をマスクする(ログ保存前に呼び出す)。
resolveContentType()  : string
許可リスト外の Content-Type が保存されていた場合は application/json にフォールバックする。
resolveMethod()  : string
Standard エディションでは POST 固定とする。UI 表示制御に加えて送信時にもサーバ側で強制する。
saveLog()  : mixed
send()  : mixed

Constants

ALLOWED_CONTENT_TYPES

Content-Type の許可リスト。許可リスト外の値が保存されていた場合は先頭の値にフォールバックする。

private mixed ALLOWED_CONTENT_TYPES = ['application/json', 'application/json; charset=utf-8', 'application/x-www-form-urlencoded', 'application/x-www-form-urlencoded; charset=utf-8']

ALLOWED_METHODS

送信を許可する HTTP メソッド。

private mixed ALLOWED_METHODS = ['POST', 'DELETE', 'PUT', 'PATCH', 'GET']

SENSITIVE_HEADER_NAMES

ログに記録する際、値をマスクする機密ヘッダー名。

private mixed SENSITIVE_HEADER_NAMES = ['Authorization', 'X-Api-Key', 'X-Auth-Token']

Properties

$isProfessionalEditionResolver

protected callable $isProfessionalEditionResolver

$payload

protected mixed $payload
Tags
@var

\Acms\Services\Webhook\Payload;

$whiteList

protected array<string|int, mixed> $whiteList = []

Methods

__construct()

Engine constructor.

public __construct(mixed $payload, array<string|int, mixed> $whiteList, HttpClientInterface $httpClient[, callable|null $isProfessionalEditionResolver = null ]) : mixed
Parameters
$payload : mixed
$whiteList : array<string|int, mixed>
$httpClient : HttpClientInterface
$isProfessionalEditionResolver : callable|null = null

Professional以上かどうかを判定する関数。 テストで差し替え可能にするための注入ポイントで、未指定時はグローバル関数 editionWithProfessional() を使う。

call()

public call(int $bid, string $type, array<string|int, mixed>|string $events[, array<string|int, mixed> $args = [] ]) : mixed
Parameters
$bid : int
$type : string
$events : array<string|int, mixed>|string
$args : array<string|int, mixed> = []

validateUrlScheme()

URLのスキーマが http or https か確認する

public validateUrlScheme(string $url) : bool
Parameters
$url : string
Return values
bool

validateUrlWhiteList()

URLのホストがホワイトリストに含まれるか確認

public validateUrlWhiteList(string $url) : bool
Parameters
$url : string
Return values
bool

buildHeaders()

ヘッダー配列の組み立て。 Standard エディションでは Content-Type 固定・カスタムヘッダー無視にフォールバックする。 カスタムヘッダーは HeaderValidator で全行検証し、1行でも不正な場合は送信全体を中止する。

protected buildHeaders(array<string|int, mixed> $hook) : array<int, string>
Parameters
$hook : array<string|int, mixed>
Tags
throws
InvalidHeaderException
Return values
array<int, string>

buildPayload()

protected buildPayload(mixed $payload, mixed $tpl) : mixed
Parameters
$payload : mixed
$tpl : mixed

buildRequestBody()

リクエストボディの組み立て。GET には付与しない。

protected buildRequestBody(array<string|int, mixed> $hook, array<string|int, mixed> $payload, string $method) : string
Parameters
$hook : array<string|int, mixed>
$payload : array<string|int, mixed>
$method : string
Return values
string

decodeHeaders()

protected decodeHeaders(string $webhookHeadersJson) : array<int, array{name?: string, value?: string}>
Parameters
$webhookHeadersJson : string
Return values
array<int, array{name?: string, value?: string}>

getHooks()

protected getHooks(int $bid, string $type, array<string|int, mixed> $events) : mixed
Parameters
$bid : int
$type : string
$events : array<string|int, mixed>

getPayload()

protected getPayload(string $type, array<string|int, mixed> $events[, array<string|int, mixed> $args = [] ]) : false|mixed
Parameters
$type : string
$events : array<string|int, mixed>
$args : array<string|int, mixed> = []
Return values
false|mixed

hookLogContext()

送信失敗時のログへ残す Webhook 設定。カスタムヘッダー(Authorization 等)と署名シークレットは 値を伏せる(送信ログのリクエストヘッダーを maskSensitiveHeaders で伏せているのと同じ理由)。

protected hookLogContext(array<string, mixed> $hook) : array<string, mixed>
Parameters
$hook : array<string, mixed>
Return values
array<string, mixed>

isProfessionalEdition()

Professional以上のエディションかどうかを判定する。 コンストラクタで注入されたcallable(未指定時はグローバル関数 editionWithProfessional())を使う。

protected isProfessionalEdition() : bool
Return values
bool

maskSensitiveHeaders()

機密ヘッダーの値をマスクする(ログ保存前に呼び出す)。

protected maskSensitiveHeaders(string $headers) : string
Parameters
$headers : string
Return values
string

resolveContentType()

許可リスト外の Content-Type が保存されていた場合は application/json にフォールバックする。

protected resolveContentType(array<string|int, mixed> $hook) : string
Parameters
$hook : array<string|int, mixed>
Return values
string

resolveMethod()

Standard エディションでは POST 固定とする。UI 表示制御に加えて送信時にもサーバ側で強制する。

protected resolveMethod(array<string|int, mixed> $hook) : string
Parameters
$hook : array<string|int, mixed>
Return values
string

saveLog()

protected saveLog(array{status: int, responseHeader: string, responseBody: string, responseTime: float} $result, mixed $id, mixed $endpoint, mixed $events, mixed $requestHeader, mixed $requestBody) : mixed
Parameters
$result : array{status: int, responseHeader: string, responseBody: string, responseTime: float}
$id : mixed
$endpoint : mixed
$events : mixed
$requestHeader : mixed
$requestBody : mixed

send()

protected send(array<string|int, mixed> $hook, array<string|int, mixed> $payload, array<string|int, mixed> $events) : mixed
Parameters
$hook : array<string|int, mixed>
$payload : array<string|int, mixed>
$events : array<string|int, mixed>

        
On this page

Search results