a-blog cms PHP API Reference

OptionProvider
in package

管理画面(フォーム / フォーム2)のバリデーション選択肢を組み立てるサービス。

登録済みバリデータ(system / user / custom / プラグイン)のメソッドに付与された #[AsValidationOption] 属性を収集し、バリデータメソッドに対応しない特別オプション (filesize / converter / duplication)をマージして、グループ単位で返す。

Table of Contents

Constants

GROUP_ORDER  = ['入力値の制限', '形式チェック', 'その他']
既知グループの表示順。グループ名は日本語ラベルそのものを使う。 ここに無いグループ(拡張バリデータ独自など)は選択肢一覧の末尾に出現順で並ぶ。
SOURCE_ORDER  = ['AcmsSystem' => 0, 'AcmsUser' => 1, 'AcmsCustom' => 2]
バリデータの処理順(小さいほど先に表示。後勝ちでメタデータを上書きするため、 実行時の解決順 custom > user > system に合わせて system を先頭で処理する)。
SPECIAL_OPTIONS  = [['key' => 'filesize', 'label' => 'ファイルサイズ上限値(KB)', 'group' => '入力値の制限', 'hasValue' => true], ['key' => 'converter', 'label' => '入力の変換', 'group' => 'その他', 'hasValue' => true], ['key' => 'duplication', 'label' => 'メールアドレスの重複禁止', 'group' => 'その他', 'hasValue' => false]]
バリデータメソッドに対応しない、フォーム処理側の特別オプション。 フォーム・フォーム2 のどちらでも選択肢に出す。

Properties

$validators  : array<string, object>

Methods

__construct()  : mixed
getGroupedOptions()  : array<int, array{group: string, label: string, options: array}>
バリデーション選択肢を、グループ単位で返す。
collectOptions()  : array<int, array{key: string, label: string, group: string, hasValue: bool}>
全バリデータの属性収集と特別オプションのマージを行い、表示順を保った一覧を返す。
extractFromValidator()  : array<int, array{key: string, label: string, group: string, hasValue: bool}>
1 つのバリデータから #[AsValidationOption] 付きメソッドを抽出する。
sortedValidators()  : array<int, object>
バリデータを処理順(system → user → custom → 拡張フック追加分)に並べ替えて返す。 SOURCE_ORDER に無い ns(拡張アプリがフックで attach したバリデータ)は rank 100+ として末尾に attach 順で並ぶ。

Constants

GROUP_ORDER

既知グループの表示順。グループ名は日本語ラベルそのものを使う。 ここに無いグループ(拡張バリデータ独自など)は選択肢一覧の末尾に出現順で並ぶ。

private array<int, string> GROUP_ORDER = ['入力値の制限', '形式チェック', 'その他']

SOURCE_ORDER

バリデータの処理順(小さいほど先に表示。後勝ちでメタデータを上書きするため、 実行時の解決順 custom > user > system に合わせて system を先頭で処理する)。

private array<string, int> SOURCE_ORDER = ['AcmsSystem' => 0, 'AcmsUser' => 1, 'AcmsCustom' => 2]

SPECIAL_OPTIONS

バリデータメソッドに対応しない、フォーム処理側の特別オプション。 フォーム・フォーム2 のどちらでも選択肢に出す。

private array<int, array{key: string, label: string, group: string, hasValue: bool}> SPECIAL_OPTIONS = [['key' => 'filesize', 'label' => 'ファイルサイズ上限値(KB)', 'group' => '入力値の制限', 'hasValue' => true], ['key' => 'converter', 'label' => '入力の変換', 'group' => 'その他', 'hasValue' => true], ['key' => 'duplication', 'label' => 'メールアドレスの重複禁止', 'group' => 'その他', 'hasValue' => false]]

Properties

$validators

private array<string, object> $validators

ns => バリデータインスタンス

Methods

__construct()

public __construct([array<string, object>|null $validators = null ]) : mixed
Parameters
$validators : array<string, object>|null = null

ns => バリデータインスタンス。未指定なら ValidatorFactory から取得する。

getGroupedOptions()

バリデーション選択肢を、グループ単位で返す。

public getGroupedOptions() : array<int, array{group: string, label: string, options: array}>
Return values
array<int, array{group: string, label: string, options: array}>

collectOptions()

全バリデータの属性収集と特別オプションのマージを行い、表示順を保った一覧を返す。

private collectOptions() : array<int, array{key: string, label: string, group: string, hasValue: bool}>
Return values
array<int, array{key: string, label: string, group: string, hasValue: bool}>

extractFromValidator()

1 つのバリデータから #[AsValidationOption] 付きメソッドを抽出する。

private extractFromValidator(object $validator) : array<int, array{key: string, label: string, group: string, hasValue: bool}>
Parameters
$validator : object
Return values
array<int, array{key: string, label: string, group: string, hasValue: bool}>

sortedValidators()

バリデータを処理順(system → user → custom → 拡張フック追加分)に並べ替えて返す。 SOURCE_ORDER に無い ns(拡張アプリがフックで attach したバリデータ)は rank 100+ として末尾に attach 順で並ぶ。

private sortedValidators() : array<int, object>
Return values
array<int, object>

        
On this page

Search results