a-blog cms PHP API Reference

ConfigAccessor
in package
uses FieldTrait

FinalYes

Twig 関数 acms_config() の戻り値となる値オブジェクト。

設定画面 Twig から「現在のスコープに対応する重ね合わせ Config Field」を扱う窓口。

設計方針:

  • Field オブジェクトは Twig に露出させない (どのメソッドも Field を返さない)
  • __toString / Stringable は実装しない (Twig の暗黙文字列化を避ける)
  • get / array / selected / checked は Field からの直取得 (軽量経路)
  • field / group / all / invalid は FieldTrait::buildFieldTrait の戻り値を返す
  • Field と built は同インスタンス内でのみ Lazy + memoize

値の取得は POST 値 overload あり をデフォルトとする (Symfony Form / Rails / Django と 同じ「フォーム描画時は submitted 優先」哲学)。永続化済みの値だけ取りたい場合は cfg.persisted で POST overload を行わない別アクセサを取得する。

Table of Contents

Constants

ENCODING  = 'UTF-8'

Properties

$built  : array<string, mixed>|null
$field  : Field|null
$opts  : array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string}
$persistedCache  : ConfigAccessor|null
$persistedMode  : bool
persisted モード (POST overload を行わないモード) かどうか。

Methods

__construct()  : mixed
all()  : array<string, mixed>
buildFieldTrait の戻り値全体を返す。
array()  : array<int, mixed>
配列値を取得する (軽量経路)。
checked()  : Markup
input[type=checkbox|radio] の checked 属性を出力する。
errors()  : array<string, array<int, string>>
バリデーション失敗フィールド一覧 (フィールド名 → 失敗メソッド名のリスト)。
field()  : array<string, mixed>
buildFieldTrait の 1 件ぶん (キー単位) を返す。
get()  : mixed
単一値を取得する (軽量経路)。
group()  : array<int, array<string, mixed>>
invalid()  : bool
Field_Validation 経由のバリデーションエラーを問い合わせる。
notice()  : string
POST から保存通知 (notice_mess) の生文字列を取得する。
persisted()  : self
persisted モード版 ConfigAccessor (POST overload を行わない) を返す。
posted()  : bool
直近のリクエストが Config 保存往復だったか。
saved()  : bool
保存通知が表示対象かどうか (notice() が非空)。
selected()  : Markup
select 要素の selected 属性を出力する。
valid()  : bool
Field 全体が valid か。
autoConvertTypeTrait()  : array<string|int, mixed>
自動で型変換
buildBasicFieldGroupTrait()  : array<string|int, mixed>
基本カスタムフィールドグループを組み立て
buildBasicFieldTrait()  : array<string|int, mixed>
基本カスタムフィールドを組み立て
buildFieldTrait()  : array<string|int, mixed>|null
フィールドを連想配列として組み立て
buildMultiFieldGroupTrait()  : array<string|int, mixed>
複数項目をもつカスタムフィールドグループを組み立て
buildMultiFieldTrait()  : array<string|int, mixed>
複数項目をもつカスタムフィールドを組み立て
extractGroupFieldKeysTrait()  : array<string|int, mixed>
グループフィールドのキーを抜き出す
extractNonGroupFieldKeysTrait()  : array<string|int, mixed>
グループフィールドのキーを除いてキーを取得
formatFieldKeysTrait()  : array<string|int, mixed>
フィールドキー配列を整形
applyPostOverload()  : Field
DB 重ね合わせ済みの Config Field の上に POST.config を最後に overload する。
buildOverlaidField()  : Field
Admin_Config::getConfig 相当の重ね合わせ Field を返す。
convertFieldValueTypeTrait()  : mixed
単一のフィールド値を適切な型に変換する (電話番号・郵便番号など先頭0を保持する値は文字列のまま返す)
convertNumericFieldValueTrait()  : int|float|string
数値文字列を int/float に変換する 先頭が0で2文字以上の場合は文字列のまま(電話番号・郵便番号等を保持)
isBooleanStringTrait()  : bool
ブール文字列("true" / "false")かどうか
resolveBuilt()  : array<string, mixed>
buildFieldTrait の戻り値を Lazy 取得 (memoize)。
resolveField()  : Field
重ね合わせ済み Field を Lazy 取得 (memoize)。

Constants

Properties

$opts

private array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string} $opts

$persistedMode

persisted モード (POST overload を行わないモード) かどうか。

private bool $persistedMode = false

Methods

__construct()

public __construct([array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string} $opts = [] ]) : mixed
Parameters
$opts : array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string} = []

all()

buildFieldTrait の戻り値全体を返す。

public all() : array<string, mixed>
Return values
array<string, mixed>

array()

配列値を取得する (軽量経路)。

public array(string $key) : array<int, mixed>
Parameters
$key : string
Return values
array<int, mixed>

checked()

input[type=checkbox|radio] の checked 属性を出力する。

public checked(string $key, string $value[, int|null $index = null ]) : Markup
Parameters
$key : string
$value : string
$index : int|null = null
Return values
Markup

errors()

バリデーション失敗フィールド一覧 (フィールド名 → 失敗メソッド名のリスト)。

public errors() : array<string, array<int, string>>

集計ロジックは Field_Validation::getInvalidMethods に閉じている (ドメイン側の 責務)。Twig 側ではフィールド名だけ欲しい場合 cfg.errors|keys で取れる。

Return values
array<string, array<int, string>>

field()

buildFieldTrait の 1 件ぶん (キー単位) を返す。

public field(string $key) : array<string, mixed>

存在しないキーは ['value' => null, 'array' => []] を返す。

Parameters
$key : string
Return values
array<string, mixed>

get()

単一値を取得する (軽量経路)。

public get(string $key[, mixed $default = null ][, int|null $index = null ]) : mixed
Parameters
$key : string
$default : mixed = null
$index : int|null = null

配列値の特定要素を取りたい場合に指定

group()

public group(string $name) : array<int, array<string, mixed>>
Parameters
$name : string
Tags
group

行ループの配列を返す。

Return values
array<int, array<string, mixed>>

invalid()

Field_Validation 経由のバリデーションエラーを問い合わせる。

public invalid(string $key[, string|null $method = null ][, int|null $index = null ]) : bool
Parameters
$key : string
$method : string|null = null

個別メソッドの失敗を見たい場合に指定 (例: 'required')

$index : int|null = null

グループ内 index

Return values
bool

notice()

POST から保存通知 (notice_mess) の生文字列を取得する。

public notice() : string

ACMS_POST_Config が保存後に redirect 経由で post field にセットする値で、 保存後 GET の表示で利用する。値の例: 'saved', 'reset', '' (未保存) など。

Return values
string

persisted()

persisted モード版 ConfigAccessor (POST overload を行わない) を返す。

public persisted() : self

「ユーザー入力ではなく、純粋に保存済みの値だけを参照したい」escape hatch 用途。 通常のフォーム描画では acms_config() のデフォルト (POST overload あり) を使う。

persisted 版でさらに persisted を呼んでも自分自身を返す (終端)。

Return values
self

posted()

直近のリクエストが Config 保存往復だったか。

public posted() : bool

POST シングルトンの 'config' サブフィールドが non-null なら true。

Return values
bool

saved()

保存通知が表示対象かどうか (notice() が非空)。

public saved() : bool
Return values
bool

selected()

select 要素の selected 属性を出力する。

public selected(string $key, string $value[, int|null $index = null ]) : Markup

戻り値は Twig\Markup でラップしているため autoescape をバイパスする。

Parameters
$key : string
$value : string
$index : int|null = null
Return values
Markup

valid()

Field 全体が valid か。

public valid() : bool

Field_Validation の場合のみ実際にバリデーション結果を見る。通常 Field では常に true。

Return values
bool

autoConvertTypeTrait()

自動で型変換

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

buildBasicFieldGroupTrait()

基本カスタムフィールドグループを組み立て

protected buildBasicFieldGroupTrait(array<string|int, mixed> $keys, Field|Field_Validation $field, array<string|int, mixed> $initial) : array<string|int, mixed>
Parameters
$keys : array<string|int, mixed>
$field : Field|Field_Validation
$initial : array<string|int, mixed>
Return values
array<string|int, mixed>

buildBasicFieldTrait()

基本カスタムフィールドを組み立て

protected buildBasicFieldTrait(array<string|int, mixed> $keys, Field|Field_Validation $field, array<string|int, mixed> $initial) : array<string|int, mixed>
Parameters
$keys : array<string|int, mixed>
$field : Field|Field_Validation
$initial : array<string|int, mixed>
Return values
array<string|int, mixed>

buildFieldTrait()

フィールドを連想配列として組み立て

protected buildFieldTrait(Field|Field_Validation $field[, string|null $scp = null ]) : array<string|int, mixed>|null
Parameters
$field : Field|Field_Validation
$scp : string|null = null
Return values
array<string|int, mixed>|null

buildMultiFieldGroupTrait()

複数項目をもつカスタムフィールドグループを組み立て

protected buildMultiFieldGroupTrait(array<string|int, mixed> $items, Field|Field_Validation $field, array<string|int, mixed> $initial) : array<string|int, mixed>
Parameters
$items : array<string|int, mixed>
$field : Field|Field_Validation
$initial : array<string|int, mixed>
Return values
array<string|int, mixed>

buildMultiFieldTrait()

複数項目をもつカスタムフィールドを組み立て

protected buildMultiFieldTrait(array<string|int, mixed> $items, Field|Field_Validation $field, array<string|int, mixed> $initial) : array<string|int, mixed>
Parameters
$items : array<string|int, mixed>
$field : Field|Field_Validation
$initial : array<string|int, mixed>
Return values
array<string|int, mixed>

extractGroupFieldKeysTrait()

グループフィールドのキーを抜き出す

protected extractGroupFieldKeysTrait(Field|Field_Validation $field, array<string|int, mixed> $fieldKeys) : array<string|int, mixed>
Parameters
$field : Field|Field_Validation
$fieldKeys : array<string|int, mixed>
Return values
array<string|int, mixed>

extractNonGroupFieldKeysTrait()

グループフィールドのキーを除いてキーを取得

protected extractNonGroupFieldKeysTrait(array<string|int, mixed> $fieldKeys, array<string|int, mixed> $groupKeys) : array<string|int, mixed>
Parameters
$fieldKeys : array<string|int, mixed>
$groupKeys : array<string|int, mixed>
Return values
array<string|int, mixed>

formatFieldKeysTrait()

フィールドキー配列を整形

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

applyPostOverload()

DB 重ね合わせ済みの Config Field の上に POST.config を最後に overload する。

private applyPostOverload(Field $config) : Field

Symfony Form / Rails と同じく「フォーム描画では submitted を最優先」する哲学。 バリデーションエラーで再描画されたときにユーザー入力を保持できる。

POST が Field_Validation 由来なら、後段で valid()/errors() が動くように Field_Validation 側を最終 Field として返す (config-side も逆 overload する)。

Parameters
$config : Field
Return values
Field

buildOverlaidField()

Admin_Config::getConfig 相当の重ね合わせ Field を返す。

private buildOverlaidField(array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string} $opts) : Field

Phase 5.9 で Acms\Services\Config\Helper の薄いラッパーに切り出して Admin_Config と共通利用する。それまでは ConfigAccessor 内で直接組み立てる。

Parameters
$opts : array{ruleId?: int, moduleId?: int, configSetId?: int, scope?: string}
Return values
Field

convertFieldValueTypeTrait()

単一のフィールド値を適切な型に変換する (電話番号・郵便番号など先頭0を保持する値は文字列のまま返す)

private convertFieldValueTypeTrait(mixed $value) : mixed
Parameters
$value : mixed

convertNumericFieldValueTrait()

数値文字列を int/float に変換する 先頭が0で2文字以上の場合は文字列のまま(電話番号・郵便番号等を保持)

private convertNumericFieldValueTrait(string|int|float $value) : int|float|string
Parameters
$value : string|int|float
Return values
int|float|string

isBooleanStringTrait()

ブール文字列("true" / "false")かどうか

private isBooleanStringTrait(mixed $value) : bool
Parameters
$value : mixed
Return values
bool

resolveBuilt()

buildFieldTrait の戻り値を Lazy 取得 (memoize)。

private resolveBuilt() : array<string, mixed>
Return values
array<string, mixed>

resolveField()

重ね合わせ済み Field を Lazy 取得 (memoize)。

private resolveField() : Field
Return values
Field

        
On this page

Search results