a-blog cms PHP API Reference

Helper
in package

旧 god class(約 3,800 行)の後方互換レイヤー。

横断的関心事はドメイン別サービスへ移設済みで、本クラスに残るのは (1) 自前ロジック(exceptionArray / fixAliasPath / camelize)と (2) 各サービスへの @deprecated 委譲シムだけ。

移行先の対応表(@deprecated タグのサービス名に対応する実体): url → Acms\Services\Url\UrlResolver url.managed-domain → Acms\Services\Url\ManagedDomainRegistry url.delivery-rewriter → Acms\Services\Url\DeliveryUrlRewriter crypto / crypto.salt / crypto.random → Acms\Services\Crypto{Encrypter, SaltRepository, RandomGenerator} security.csrf → Acms\Services\Security\CsrfTokenManager security.post-rate-limiter → Acms\Services\Security\PostRateLimiter response → Acms\Services\Response\Emitter response.header-builder → Acms\Services\Response\HeaderBuilder response.downloader → Acms\Services\Response\FileDownloader field → Acms\Services\Field\FieldRepository url.uri-object → Acms\Services\Url\UriObjectBuilder view.build-context → Acms\Services\View\BuildContext view.js-modules → Acms\Services\View\JsModulesBuilder mailer.template-renderer / mailer.config-resolver → Acms\Services\Mailer{TemplateRenderer, ConfigResolver} tag.parser → Acms\Services\Tag\TagParser template.theme-inheritance → Acms\Services\Template\ThemeInheritanceResolver validator.file-upload → Acms\Services\Validator\FileUploadValidator storage.asset-synchronizer → Acms\Services\Storage\AssetSynchronizer cache.page-writer → Acms\Services\Cache\PageCacheWriter fulltext → Acms\Services\Fulltext\Helper markdown → Acms\Services\Markdown\MarkdownConverter

Why not シムを消して行数を削る: @deprecated の委譲シムは外部プラグインの後方互換のために 存在する。行数(現在 953 行)の内訳は docblock 約 520 行・コード約 360 行で、 そのうち自前ロジックは 50 行しかない。「god class」という元の問題は既に解消しており、 これ以上削るには 72 個の単純委譲を __call + 別名表へ畳む必要がある。 それは Common:: の呼び出し 730 箇所の解決経路を変え、IDE の定義ジャンプと 静的解析の追跡性を失うため、本 PR の範囲では採らない。

Why not すべての処理をサービスへ移設しない(exceptionArray がここに残る理由): 「呼び出し元が本クラスしかない処理」を別クラスへ切り出すと、委譲するだけの薄いクラスが 増えるだけで(Speculative Generality)、しかも移設先パッケージから Common への逆方向依存を 生む。移設の判断基準は「本クラス以外に直接の利用者が居るか」とし、居ないものはここに実装を置く。 上表の移設先はいずれもこの基準を満たしている(例: ManagedDomainRegistry は 14 ファイル、 TagParser は 8 ファイルが本クラスを経由せず直接使う)。parseMarkdown も、サービス差し替え機構 (docs/steering/20260830-service-override-mechanism/design.md)により Unit モデル・Twig・ プラグインが 'markdown' サービスの直接の利用者になったため、この基準を満たして移設した。

Table of Contents

Methods

addCsrfToken()  : string
CSRFトークンをFromに付与
addSecurityHeader()  : mixed
セキュリティヘッダー
backgroundRedirect()  : mixed
すぐにリダイレクトし、同一プロセスのバックグラウンドで処理を実行
buildCacheableHeaders()  : array<string|int, string>
クライアント・中間キャッシュ向けの Cache-Control 系ヘッダーを組み立てる純粋関数。
buildPreviewAllowedOrigins()  : array<string|int, string>
getManagedOrigins() の組み立てロジックを、グローバル定数(HTTP_HOST 等)に依存しない 純粋関数として切り出したもの。
camelize()  : string
checkCsrfToken()  : bool
CSRFトークンのチェック
clientCacheHeader()  : void
セキュリティヘッダーを追加
convertAssetUrlsToAbsolute()  : string
HTML内のアセット参照(画像・動画・スタイルシート等)を絶対URLに変換する。
convertRelativeUrlToAbsolute()  : string
単一の相対URLを絶対URL(フルURL)に変換する
createCsrfToken()  : string
CSRFトークンを生成
csrfTokenExists()  : bool
CSRFトークンの存在チェック
decrypt()  : string
deleteField()  : void
カスタムフィールドの削除
deleteFieldCache()  : mixed
カスタムフィールドキャッシュの削除
download()  : never
ファイルダウンロード
encrypt()  : string
exceptionArray()  : array<string|int, string|int>
例外情報を連想配列に変換
extract()  : Field_Validation
POSTデータからデータの抜き出し
fixAliasPath()  : string
管理画面でテンプレート直で書かれているパスを、エイリアスを含んだURLに修正
flushCache()  : mixed
genPass()  : string
パスワードジェネレータ
getAppSalt()  : string
アプリの固定ソルトを取得
getCurrentSalt()  : string
現在のソルトを取得
getDeleteField()  : Field
extract()後の削除フィールドを取得
getEncryptIv()  : string
getHttpHeader()  : string
ToDo: リファクタリング
getInheritedThemes()  : array<string|int, string>
指定されたテーマの継承テーマ・システムテーマすべてのテーマの配列を取得
getJsModules()  : array<string|int, mixed>
getMailTxt()  : string
メールテンプレートの解決
getMailTxtFromTxt()  : string
文字列直接入力 (フォームの件名・本文など運営者の管理画面入力) からメール本文を組み立てる。
getManagedOrigins()  : array<string|int, string>
window.postMessage の origin 検証に使う最小限のオリジン集合を、 scheme 付きオリジン(scheme://host[:port])の配列として取得する
getPreviousSalt()  : string
1つ前のソルトを取得
getTagsFromString()  : array<string|int, string>
タグの配列化
getUriObject()  : Field
URIオブジェクトの取得
isAuthorizedAjaxRequest()  : bool
許可されたajaxアクセスか判定(どのようなtpl指定であっても許可する)
isForceV1Build()  : bool
強制的にV1ビルドを行うか判定
isLocalPrivateStorage()  : bool
プライベートストレージの設定がローカルかどうか
isLocalPublicStorage()  : bool
パブリックストレージの設定がローカルかどうか
isManagedDomain()  : bool
指定されたドメインが管理ドメインかどうかを判定
isPostSizeExceeded()  : bool
POST リクエストのボディサイズが PHP の post_max_size を超過しているか判定する。
isSafeUrl()  : bool
a-blog cms で管理しているドメインのURLかチェックする
isV2Module()  : bool
V2モジュールとして実行中か判定
loadBlogFulltext()  : string
ブログのフルテキストを取得
loadCategoryFulltext()  : string
カテゴリのフルテキストを取得
loadEntryFulltext()  : string
エントリーのフルテキストを取得
loadField()  : Field
ブログID, カテゴリーID, エントリーID,ユーザーIDの いずれか指定されたカスタムフィールドをFieldオブジェクトで返す
loadUserFulltext()  : string
ユーザーのフルテキストを取得
logLockPost()  : mixed
mailConfig()  : mixed
メール設定の取得
parseMarkdown()  : string
マークダウン文字列を解析する
replaceDeliveryUrl()  : string
メディアの配信先URLを書き換え
replaceDeliveryUrlAll()  : string
メディアの配信先URLを書き換え(全て)
resolveClientCacheHeaders()  : array<string|int, string>
clientCacheHeader() が送出する Cache-Control 等のヘッダー文字列を組み立てる。
resolveUrl()  : string
V2モジュール、V2APIビルド時に、URLを絶対URLに変換 それ以外はそのままのURLを返す
responseJson()  : never
saveCache()  : mixed
saveField()  : bool
カスタムフィールドの保存
saveFulltext()  : void
フルテキストの保存
setAppSalt()  : void
アプリ全体で使用するSaltを更新・設定
setCurrentSalt()  : void
現在のソルトを設定
setForceV1Build()  : void
強制的にV1ビルドを行うか設定
setPreviousSalt()  : void
1つ前のソルトを設定
setSafeHeadersWithoutCache()  : void
キャッシュ無効で安全なレスポンスヘッダーを組み立てます。
setV2Module()  : void
V2モジュールとして実行中か設定
toAbsoluteUrl()  : string
URL を完全な absolute URL(scheme + host + path)に変換する。
toRootRelativeUrl()  : string
URL を root-relative URL(`/path` 形式、scheme/host を含まない)に変換する。
uploadAssetDirectory()  : void
ローカルのディレクトリをS3などのリモートストレージにアップロード
validateFileUpload()  : void
ファイルアップロードを検証
validateLockPost()  : bool
getManagedDomains()  : array<string|int, string>
管理ドメインのリストを取得(キャッシュあり)
assetSynchronizer()  : AssetSynchronizer
AssetSynchronizer のコンテナ singleton('storage.asset-synchronizer')を取得する。
buildContext()  : BuildContext
V2モジュール/V1強制ビルドの実行時フラグを保持するコンテナ singleton を取得する。
csrfTokenManager()  : CsrfTokenManager
CsrfTokenManager のコンテナ singleton('security.csrf')を取得する。
deliveryUrlRewriter()  : DeliveryUrlRewriter
メディア配信先URL書き換えのコンテナ singleton('url.delivery-rewriter')を取得する。
emitter()  : Emitter
Emitter のコンテナ singleton('response')を取得する。
encrypter()  : Encrypter
Encrypter のコンテナ singleton('crypto')を取得する。
fieldRepository()  : FieldRepository
FieldRepository のコンテナ singleton('field')を取得する。
fileUploadValidator()  : FileUploadValidator
FileUploadValidator のコンテナ singleton('validator.file-upload')を取得する。
headerBuilder()  : HeaderBuilder
HeaderBuilder のコンテナ singleton('response.header-builder')を取得する。
jsModulesBuilder()  : JsModulesBuilder
JsModulesBuilder のコンテナ singleton('view.js-modules')を取得する。
mailConfigResolver()  : ConfigResolver
ConfigResolver のコンテナ singleton('mailer.config-resolver')を取得する。
mailTemplateRenderer()  : TemplateRenderer
TemplateRenderer のコンテナ singleton('mailer.template-renderer')を取得する。
managedDomainRegistry()  : ManagedDomainRegistry
管理ドメインレジストリのコンテナ singleton('url.managed-domain')を取得する。
pageCacheWriter()  : PageCacheWriter
PageCacheWriter のコンテナ singleton('cache.page-writer')を取得する。
postRateLimiter()  : PostRateLimiter
PostRateLimiter のコンテナ singleton('security.post-rate-limiter')を取得する。
randomGenerator()  : RandomGenerator
RandomGenerator のコンテナ singleton('crypto.random')を取得する。
saltRepository()  : SaltRepository
SaltRepository のコンテナ singleton('crypto.salt')を取得する。
tagParser()  : TagParser
TagParser のコンテナ singleton('tag.parser')を取得する。
themeInheritanceResolver()  : ThemeInheritanceResolver
ThemeInheritanceResolver のコンテナ singleton('template.theme-inheritance')を取得する。
uriObjectBuilder()  : UriObjectBuilder
UriObjectBuilder のコンテナ singleton('url.uri-object')を取得する。
urlResolver()  : UrlResolver
URL 解決のコンテナ singleton('url')を取得する。

Methods

addCsrfToken()

CSRFトークンをFromに付与

public addCsrfToken(string $tpl) : string

'security.csrf' サービスを使用してください。

Parameters
$tpl : string
Return values
string

addSecurityHeader()

セキュリティヘッダー

public addSecurityHeader() : mixed

'response' サービスを使用してください。

backgroundRedirect()

すぐにリダイレクトし、同一プロセスのバックグラウンドで処理を実行

public backgroundRedirect(string $url[, int $statusCode = 301 ]) : mixed

'response' サービスを使用してください。

Parameters
$url : string
$statusCode : int = 301

リダイレクトの HTTP ステータスコード(既定: 301)

buildCacheableHeaders()

クライアント・中間キャッシュ向けの Cache-Control 系ヘッダーを組み立てる純粋関数。

public buildCacheableHeaders(int $cacheExpireClient[, int|null $lastModifiedTime = null ]) : array<string|int, string>

'response.header-builder' サービスを使用してください。

Parameters
$cacheExpireClient : int
$lastModifiedTime : int|null = null

Last-Modified に使う時刻。null の場合 REQUEST_TIME を使う

Return values
array<string|int, string>

buildPreviewAllowedOrigins()

getManagedOrigins() の組み立てロジックを、グローバル定数(HTTP_HOST 等)に依存しない 純粋関数として切り出したもの。

public static buildPreviewAllowedOrigins(string $ownHost, string|null $targetDomain, bool $isSecure, string $portValue) : array<string|int, string>

ManagedDomainRegistry::buildPreviewAllowedOrigins() を使用してください。

Why not 削除する: 移設前は public static だったため、外部プラグインから Helper::buildPreviewAllowedOrigins(...) で呼べていた。他メソッドと同様の @deprecated 委譲シムとして残す(削除すると Call to undefined method で fatal になる)。

Parameters
$ownHost : string

現在のリクエストのホスト名(HTTP_HOST 相当)

$targetDomain : string|null

プレビュー対象ブログのドメイン(blogDomain(BID) 相当。未設定なら空文字/null)

$isSecure : bool

現在のリクエストが https か(HTTPS 相当)

$portValue : string

ポート文字列(":8080" 形式。既定ポートなら空文字。HTTP_PORT_VALUE 相当)

Return values
array<string|int, string>

camelize()

public camelize(string $str) : string
Parameters
$str : string
Return values
string

checkCsrfToken()

CSRFトークンのチェック

public checkCsrfToken(string $token) : bool

'security.csrf' サービスを使用してください。

Parameters
$token : string
Return values
bool

clientCacheHeader()

セキュリティヘッダーを追加

public clientCacheHeader([bool $noCache = false ]) : void

'response' サービスを使用してください。

Parameters
$noCache : bool = false

convertAssetUrlsToAbsolute()

HTML内のアセット参照(画像・動画・スタイルシート等)を絶対URLに変換する。

public convertAssetUrlsToAbsolute(string $html, string $baseUrl) : string

'url' サービスを使用してください。

Parameters
$html : string
$baseUrl : string
Return values
string

convertRelativeUrlToAbsolute()

単一の相対URLを絶対URL(フルURL)に変換する

public convertRelativeUrlToAbsolute(string $url, string $baseUrl) : string

'url' サービスを使用してください。

Parameters
$url : string
$baseUrl : string
Return values
string

createCsrfToken()

CSRFトークンを生成

public createCsrfToken() : string

'security.csrf' サービスを使用してください。

Return values
string

csrfTokenExists()

CSRFトークンの存在チェック

public csrfTokenExists() : bool

'security.csrf' サービスを使用してください。

Return values
bool

decrypt()

public decrypt(string $cipherText, string $iv) : string

'crypto' サービスを使用してください。

Parameters
$cipherText : string
$iv : string
Tags
throws
LengthException

IVの長さが不正な場合、または暗号文の長さがブロックサイズの倍数でない場合

Return values
string

deleteField()

カスタムフィールドの削除

public deleteField("bid"|"uid"|"cid"|"mid"|"eid"|"unit_id" $type, ($type is "unit_id" ? string : int) $id[, int|null $rvid = null ][, int|null $blogId = null ]) : void

'field' サービスを使用してください。

Parameters
$type : "bid"|"uid"|"cid"|"mid"|"eid"|"unit_id"
$id : ($type is "unit_id" ? string : int)
$rvid : int|null = null
$blogId : int|null = null

deleteFieldCache()

カスタムフィールドキャッシュの削除

public deleteFieldCache("bid"|"uid"|"cid"|"mid"|"eid"|"unit_id" $type, ($type is "unit_id" ? string : int) $id[, int|null $rvid = null ]) : mixed

'field' サービスを使用してください。

Parameters
$type : "bid"|"uid"|"cid"|"mid"|"eid"|"unit_id"
$id : ($type is "unit_id" ? string : int)
$rvid : int|null = null

download()

ファイルダウンロード

public download(string $path, string $fileName[, string|false $extension = false ][, bool $remove = false ][, Filesystem $storage = null ]) : never

'response.downloader' サービスを使用してください。

Parameters
$path : string
$fileName : string
$extension : string|false = false

// 指定すると、Content-Disposition: inline になります。

$remove : bool = false
$storage : Filesystem = null
Return values
never

encrypt()

public encrypt(string $string, string $iv) : string

'crypto' サービスを使用してください。

Parameters
$string : string
$iv : string
Return values
string

exceptionArray()

例外情報を連想配列に変換

public exceptionArray(Throwable $th[, array<string|int, mixed> $add = [] ]) : array<string|int, string|int>

Why not 非推奨にしてサービスへ移設しない: AcmsLogger(Logger ファサード)は 'acms-logger' (Monolog\Logger 本体)に解決されるため、ログ用のフォーマッタをファサード経由で呼ぶ手段がない。 148箇所という利用実績もあり Common::exceptionArray() が実質的な正式経路なので、移設先を 別クラスに切っても Common を経由し続けることになる。委譲するだけの1メソッドクラスを挟まず ここに実装を置く(他の @deprecated シムと違い、新規コードもこのまま使ってよい)。

Parameters
$th : Throwable
$add : array<string|int, mixed> = []
Return values
array<string|int, string|int>

extract()

POSTデータからデータの抜き出し

public extract([string $scp = 'field' ][, ACMS_Validator|null $V = null ][, Field|null $deleteField = null ]) : Field_Validation

'field' サービスを使用してください。

image/file カスタムフィールドで旧ファイルを消す操作(削除チェック・差し替え)があった場合、 物理削除は即時には行わず Field のメタ情報 'removeOld' に記録する。 実際の物理削除はバリデーション通過後に呼ばれる saveField() 内で参照チェック (field / field_rev の両テーブルを検索)の上で行う。 よって旧ファイルを残すべきかどうか(新バージョン保存・作業領域のみの保存)は 呼び出し元が判定する必要はなく、参照チェックが自動的に判断する。

Parameters
$scp : string = 'field'
$V : ACMS_Validator|null = null
$deleteField : Field|null = null
Return values
Field_Validation

fixAliasPath()

管理画面でテンプレート直で書かれているパスを、エイリアスを含んだURLに修正

public fixAliasPath(string $txt) : string
Parameters
$txt : string
Return values
string

flushCache()

public flushCache() : mixed

'field' サービスを使用してください。

genPass()

パスワードジェネレータ

public genPass(int $len) : string

'crypto.random' サービスを使用してください。

Parameters
$len : int

パスワードの長さ

Return values
string

getAppSalt()

アプリの固定ソルトを取得

public getAppSalt() : string

'crypto.salt' サービスを使用してください。

Return values
string

getCurrentSalt()

現在のソルトを取得

public getCurrentSalt() : string

'crypto.salt' サービスを使用してください。

Return values
string

getDeleteField()

extract()後の削除フィールドを取得

public getDeleteField() : Field

'field' サービスを使用してください。

Return values
Field

getEncryptIv()

public getEncryptIv() : string

'crypto' サービスを使用してください。

Return values
string

getHttpHeader()

ToDo: リファクタリング

public getHttpHeader(string $name) : string

'security.csrf' サービスを使用してください。

Parameters
$name : string
Return values
string

getInheritedThemes()

指定されたテーマの継承テーマ・システムテーマすべてのテーマの配列を取得

public getInheritedThemes(string $theme) : array<string|int, string>

'template.theme-inheritance' サービスを使用してください。

Parameters
$theme : string
Return values
array<string|int, string>

getJsModules()

public getJsModules() : array<string|int, mixed>

'view.js-modules' サービスを使用してください。

Return values
array<string|int, mixed>

getMailTxt()

メールテンプレートの解決

public getMailTxt(string $path, Field $field[, string|null $charset = null ]) : string

'mailer.template-renderer' サービスを使用してください。

Parameters
$path : string
$field : Field
$charset : string|null = null
Return values
string

getMailTxtFromTxt()

文字列直接入力 (フォームの件名・本文など運営者の管理画面入力) からメール本文を組み立てる。

public getMailTxtFromTxt(string $txt, Field $field) : string

'mailer.template-renderer' サービスを使用してください。

Parameters
$txt : string
$field : Field
Return values
string

getManagedOrigins()

window.postMessage の origin 検証に使う最小限のオリジン集合を、 scheme 付きオリジン(scheme://host[:port])の配列として取得する

public getManagedOrigins() : array<string|int, string>

'url.managed-domain' サービスを使用してください。

Return values
array<string|int, string>

getPreviousSalt()

1つ前のソルトを取得

public getPreviousSalt() : string

'crypto.salt' サービスを使用してください。

Return values
string

getTagsFromString()

タグの配列化

public getTagsFromString(string $string[, bool $checkReserved = true ]) : array<string|int, string>

'tag.parser' サービスを使用してください。

Parameters
$string : string
$checkReserved : bool = true
Return values
array<string|int, string>

getUriObject()

URIオブジェクトの取得

public getUriObject(Field $Post) : Field

'url.uri-object' サービスを使用してください。

Parameters
$Post : Field
Return values
Field

isAuthorizedAjaxRequest()

許可されたajaxアクセスか判定(どのようなtpl指定であっても許可する)

public isAuthorizedAjaxRequest([int $level = 1 ]) : bool

'security.csrf' サービスを使用してください。

level-0: チェックをしない level-1: RefererとAjaxリクエスト判定 level-2: CSRFトークンチェック

Parameters
$level : int = 1
Return values
bool

isForceV1Build()

強制的にV1ビルドを行うか判定

public isForceV1Build() : bool

'view.build-context' サービスを使用してください。

Return values
bool

isLocalPrivateStorage()

プライベートストレージの設定がローカルかどうか

public isLocalPrivateStorage() : bool

'storage.asset-synchronizer' サービスを使用してください。

Return values
bool

isLocalPublicStorage()

パブリックストレージの設定がローカルかどうか

public isLocalPublicStorage() : bool

'storage.asset-synchronizer' サービスを使用してください。

Return values
bool

isManagedDomain()

指定されたドメインが管理ドメインかどうかを判定

public isManagedDomain(string $domain[, array<string|int, string> $additionalDomains = [] ]) : bool

'url.managed-domain' サービスを使用してください。

Parameters
$domain : string

チェックするドメイン

$additionalDomains : array<string|int, string> = []

追加で許可するドメインのリスト

Return values
bool

isPostSizeExceeded()

POST リクエストのボディサイズが PHP の post_max_size を超過しているか判定する。

public isPostSizeExceeded(string $requestMethod, int|null $contentLength, int $postMaxBytes) : bool

'response.header-builder' サービスを使用してください。

Parameters
$requestMethod : string

リクエストメソッド($_SERVER['REQUEST_METHOD'])

$contentLength : int|null

Content-Length(ヘッダ不在時は null)

$postMaxBytes : int

post_max_size をバイトに換算した値(0 以下は無制限)

Return values
bool —

超過していれば true

isSafeUrl()

a-blog cms で管理しているドメインのURLかチェックする

public isSafeUrl(string $url) : bool

'url.managed-domain' サービスを使用してください。

Parameters
$url : string
Return values
bool

isV2Module()

V2モジュールとして実行中か判定

public isV2Module() : bool

'view.build-context' サービスを使用してください。

Return values
bool

loadBlogFulltext()

ブログのフルテキストを取得

public loadBlogFulltext(int $bid) : string

Fulltext::loadBlogFulltext() を直接使用してください。

Parameters
$bid : int
Return values
string

loadCategoryFulltext()

カテゴリのフルテキストを取得

public loadCategoryFulltext(int $cid) : string

Fulltext::loadCategoryFulltext() を直接使用してください。

Parameters
$cid : int
Return values
string

loadEntryFulltext()

エントリーのフルテキストを取得

public loadEntryFulltext(int $eid) : string

Fulltext::loadEntryFulltext() を直接使用してください。

Why not ロジックをここに置く: フルテキスト関連の読み書き・正規化は Services\Fulltext に集約した (CMS-7772 のついでに実施したボーイスカウト対応)。本メソッドは既存の呼び出し元(Common ファサード 経由)を破壊しないための後方互換シムとして残す。

Parameters
$eid : int
Return values
string

loadField()

ブログID, カテゴリーID, エントリーID,ユーザーIDの いずれか指定されたカスタムフィールドをFieldオブジェクトで返す

public loadField([null|int $bid = null ][, null|int $uid = null ][, null|int $cid = null ][, null|int $mid = null ][, null|int $eid = null ][, null|string $unitId = null ][, null|int $rvid = null ][, bool $rewrite = false ]) : Field

'field' サービスを使用してください。

Parameters
$bid : null|int = null
$uid : null|int = null
$cid : null|int = null
$mid : null|int = null
$eid : null|int = null
$unitId : null|string = null
$rvid : null|int = null
$rewrite : bool = false
Return values
Field

loadUserFulltext()

ユーザーのフルテキストを取得

public loadUserFulltext(int $uid) : string

Fulltext::loadUserFulltext() を直接使用してください。

Parameters
$uid : int
Return values
string

logLockPost()

public logLockPost(string $lockKey) : mixed

'security.post-rate-limiter' サービスを使用してください。

Parameters
$lockKey : string

mailConfig()

メール設定の取得

public mailConfig([array{smtp-host?: string, smtp-port?: string, smtp-user?: string, smtp-pass?: string, smtp-verify-peer?: string, smtp-local-domain?: string, mail_from?: string, sendmail_path?: string, additional_headers?: string, smtp-google?: string, smtp-google-user?: string} $argConfig = [] ]) : mixed

'mailer.config-resolver' サービスを使用してください。

Parameters
$argConfig : array{smtp-host?: string, smtp-port?: string, smtp-user?: string, smtp-pass?: string, smtp-verify-peer?: string, smtp-local-domain?: string, mail_from?: string, sendmail_path?: string, additional_headers?: string, smtp-google?: string, smtp-google-user?: string} = []

parseMarkdown()

マークダウン文字列を解析する

public parseMarkdown(string $txt) : string

'markdown' サービス(Acms\Services\Markdown\Contracts\Converter)を使用してください。

Parameters
$txt : string
Return values
string

replaceDeliveryUrl()

メディアの配信先URLを書き換え

public replaceDeliveryUrl(string $url) : string

'url.delivery-rewriter' サービスを使用してください。

Parameters
$url : string
Return values
string

replaceDeliveryUrlAll()

メディアの配信先URLを書き換え(全て)

public replaceDeliveryUrlAll(string $html) : string

'url.delivery-rewriter' サービスを使用してください。

Parameters
$html : string
Return values
string

resolveClientCacheHeaders()

clientCacheHeader() が送出する Cache-Control 等のヘッダー文字列を組み立てる。

public resolveClientCacheHeaders([bool $noCache = false ]) : array<string|int, string>

'response.header-builder' サービスを使用してください。

Parameters
$noCache : bool = false
Return values
array<string|int, string>

resolveUrl()

V2モジュール、V2APIビルド時に、URLを絶対URLに変換 それ以外はそのままのURLを返す

public resolveUrl(string $path[, string $offset = '' ]) : string

'url' サービスを使用してください。

Parameters
$path : string
$offset : string = ''
Return values
string

responseJson()

public responseJson(mixed $data) : never

'response' サービス(Acms\Services\Response\Emitter)の json() を使用してください。

Parameters
$data : mixed
Return values
never

saveCache()

public saveCache(string $chid, string $contents, string $mime) : mixed

'cache.page-writer' サービスを使用してください。

Parameters
$chid : string
$contents : string
$mime : string

saveField()

カスタムフィールドの保存

public saveField("bid"|"uid"|"cid"|"mid"|"eid"|"unit_id" $type, ($type is "unit_id" ? string : int) $id[, Field|null $field = null ][, Field|null $deleteField = null ][, int|null $rvid = null ][, int $targetBid = BID ]) : bool

'field' サービスを使用してください。

Parameters
$type : "bid"|"uid"|"cid"|"mid"|"eid"|"unit_id"
$id : ($type is "unit_id" ? string : int)
$field : Field|null = null
$deleteField : Field|null = null
$rvid : int|null = null
$targetBid : int = BID
Return values
bool

saveFulltext()

フルテキストの保存

public saveFulltext(string $type, int $id[, string|null $fulltext = null ][, int $targetBid = BID ]) : void

Fulltext::saveFulltext() を直接使用してください。

Parameters
$type : string

フルテキストのタイプ

$id : int
$fulltext : string|null = null
$targetBid : int = BID

setAppSalt()

アプリ全体で使用するSaltを更新・設定

public setAppSalt() : void

'crypto.salt' サービスを使用してください。

setCurrentSalt()

現在のソルトを設定

public setCurrentSalt(string $salt) : void

'crypto.salt' サービスを使用してください。

Parameters
$salt : string

setForceV1Build()

強制的にV1ビルドを行うか設定

public setForceV1Build(bool $isForceV1Build) : void

'view.build-context' サービスを使用してください。

Parameters
$isForceV1Build : bool

setPreviousSalt()

1つ前のソルトを設定

public setPreviousSalt(string $salt) : void

'crypto.salt' サービスを使用してください。

Parameters
$salt : string

setSafeHeadersWithoutCache()

キャッシュ無効で安全なレスポンスヘッダーを組み立てます。

public setSafeHeadersWithoutCache([int $code = 200 ][, string $mime = 'text/html' ]) : void

'response' サービス(Acms\Services\Response\Emitter)の safeHeaders() を使用してください。

Parameters
$code : int = 200
$mime : string = 'text/html'

setV2Module()

V2モジュールとして実行中か設定

public setV2Module(bool $isV2Module) : void

'view.build-context' サービスを使用してください。

Parameters
$isV2Module : bool

toAbsoluteUrl()

URL を完全な absolute URL(scheme + host + path)に変換する。

public toAbsoluteUrl(string $path[, string $offset = '' ][, string|null $baseUrl = null ]) : string

'url' サービスを使用してください。

Parameters
$path : string

入力パス

$offset : string = ''

URL の前置オフセット(DIR_OFFSET 相当)

$baseUrl : string|null = null

解決の基準とする base URL。null の場合は BASE_URL を使用

Return values
string

toRootRelativeUrl()

URL を root-relative URL(`/path` 形式、scheme/host を含まない)に変換する。

public toRootRelativeUrl(string $path[, string $offset = '' ][, string|null $baseUrl = null ]) : string

'url' サービスを使用してください。

Parameters
$path : string

入力パス

$offset : string = ''

URL の前置オフセット(DIR_OFFSET 相当)

$baseUrl : string|null = null

解決の基準とする base URL。null の場合は BASE_URL を使用

Return values
string

uploadAssetDirectory()

ローカルのディレクトリをS3などのリモートストレージにアップロード

public uploadAssetDirectory(string $from, string $to, bool $isPublic) : void

'storage.asset-synchronizer' サービスを使用してください。

Parameters
$from : string
$to : string
$isPublic : bool

validateFileUpload()

ファイルアップロードを検証

public validateFileUpload(string $name) : void

'validator.file-upload' サービスを使用してください。

Parameters
$name : string
Tags
throws
RuntimeException

validateLockPost()

public validateLockPost(string $lockKey[, int $trialTime = 5 ][, int $trialNumber = 5 ][, int $lockTime = 15 ][, bool $remoteAddr = true ]) : bool

'security.post-rate-limiter' サービスを使用してください。

Parameters
$lockKey : string
$trialTime : int = 5

試行時間

$trialNumber : int = 5

試行回数

$lockTime : int = 15

ロックタイム

$remoteAddr : bool = true

接続元IPアドレスをチェックするかどうか

Return values
bool

getManagedDomains()

管理ドメインのリストを取得(キャッシュあり)

protected getManagedDomains([array<string|int, string> $additionalDomains = [] ]) : array<string|int, string>

'url.managed-domain' サービスを使用してください。

Why not 削除する: 移設前は protected で、外部の拡張・テストが「DB 依存を除去するために オーバーライドする」対象になっていた(旧 HelperTest と同型)。呼び出し互換のために委譲シムを残す。 ただしオーバーライドしても isSafeUrl() / isManagedDomain() の結果は変わらない(それらは 'url.managed-domain' サービスを参照する)。差し替えたい場合は ManagedDomainRegistry の サブクラスをコンテナに登録すること。

Parameters
$additionalDomains : array<string|int, string> = []

追加で許可するドメインのリスト

Return values
array<string|int, string>

buildContext()

V2モジュール/V1強制ビルドの実行時フラグを保持するコンテナ singleton を取得する。

private buildContext() : BuildContext

Why not プロパティに保持する(コンストラクタで new / make する): BuildContext は setV2Module() / setForceV1Build() で書き換わる可変状態を持ち、リクエスト内で 1 インスタンスを 共有することが契約。Helper 内で new すると、@deprecated タグが移行先として案内している コンテナ側 singleton('view.build-context')と状態が分裂し、Common::setV2Module() の書き込みが 新 API の読み手に届かなくなる。コンストラクタで make() する形も同じ singleton を掴めるが、 ViewServiceProvider の登録より先に 'common' が解決される順序に暗黙依存するため、 参照時に毎回コンテナから引く(singleton なので同一インスタンスが返る)。

Return values
BuildContext

emitter()

Emitter のコンテナ singleton('response')を取得する。

private emitter() : Emitter
Return values
Emitter

encrypter()

Encrypter のコンテナ singleton('crypto')を取得する。

private encrypter() : Encrypter
Return values
Encrypter

headerBuilder()

HeaderBuilder のコンテナ singleton('response.header-builder')を取得する。

private headerBuilder() : HeaderBuilder
Return values
HeaderBuilder

mailConfigResolver()

ConfigResolver のコンテナ singleton('mailer.config-resolver')を取得する。

private mailConfigResolver() : ConfigResolver
Return values
ConfigResolver

mailTemplateRenderer()

TemplateRenderer のコンテナ singleton('mailer.template-renderer')を取得する。

private mailTemplateRenderer() : TemplateRenderer
Return values
TemplateRenderer

managedDomainRegistry()

管理ドメインレジストリのコンテナ singleton('url.managed-domain')を取得する。

private managedDomainRegistry() : ManagedDomainRegistry

Why not Helper 内で new する: このレジストリは DB 由来の管理ドメイン一覧をインスタンス内で メモ化する。Helper が独自インスタンスを持つと、コンテナ側を使う FieldTrait('url')や JsModulesBuilder('url.managed-domain')とメモ化キャッシュが分裂し、同一リクエスト内で blog / alias の DISTINCT クエリが二重に走るうえ、リクエスト途中でドメインが増えた場合に 片方だけ古い一覧を保持して管理ドメイン判定が食い違う。テストでメモ化を分離したい場合は new Helper() ではなく ManagedDomainRegistry::clearCache() を使う。

Return values
ManagedDomainRegistry

postRateLimiter()

PostRateLimiter のコンテナ singleton('security.post-rate-limiter')を取得する。

private postRateLimiter() : PostRateLimiter
Return values
PostRateLimiter

tagParser()

TagParser のコンテナ singleton('tag.parser')を取得する。

private tagParser() : TagParser
Return values
TagParser

        
On this page

Search results