FieldExtractor
in package
POST データからカスタムフィールド(Field_Validation)を組み立てる。
image/file カスタムフィールドで旧ファイルを消す操作(削除チェック・差し替え)があった場合、 物理削除は即時には行わず Field のメタ情報 'removeOld' に記録する。 実際の物理削除はバリデーション通過後に呼ばれる FieldRepository::saveField() 内で参照チェック (field / field_rev の両テーブルを検索)の上で行う。 よって旧ファイルを残すべきかどうか(新バージョン保存・作業領域のみの保存)は 呼び出し元が判定する必要はなく、参照チェックが自動的に判断する。
Table of Contents
Properties
- $deleteField : Field
- extract()後の削除フィールドを一時保存
- $Post : Field
- $fileFieldHandler : FileFieldHandler
- $imageFieldHandler : ImageFieldHandler
- $mimeTypeValidator : MimeTypeValidator
- $uploadedFilesNormalizer : UploadedFilesNormalizer
Methods
- __construct() : mixed
- extract() : Field_Validation
- POSTデータからデータの抜き出し
- extractResult() : ExtractResult
- POSTデータからデータを抜き出し、抽出結果と削除フィールドをまとめて返す
- getDeleteField() : Field
- extract()後の削除フィールドを取得
Properties
$deleteField
extract()後の削除フィールドを一時保存
protected
Field
$deleteField
$Post
protected
Field
$Post
$fileFieldHandler
private
FileFieldHandler
$fileFieldHandler
$imageFieldHandler
private
ImageFieldHandler
$imageFieldHandler
$mimeTypeValidator
private
MimeTypeValidator
$mimeTypeValidator
$uploadedFilesNormalizer
private
UploadedFilesNormalizer
$uploadedFilesNormalizer
Methods
__construct()
public
__construct([callable(string): void|null $onMediaCreate = null ]) : mixed
Parameters
- $onMediaCreate : callable(string): void|null = null
-
アップロードされたメディアの生成通知。 image / file の各ハンドラへそのまま渡す(発火の作法はハンドラ側の基底クラスに閉じている)。
extract()
POSTデータからデータの抜き出し
public
extract([string $scp = 'field' ][, ACMS_Validator|null $V = null ][, Field|null $deleteField = null ]) : Field_Validation
抽出された Field だけを返す互換メソッド。削除フィールドも併せて必要な場合は extractResult() を使うこと(呼び出し順への依存が無くなる)。
Parameters
- $scp : string = 'field'
- $V : ACMS_Validator|null = null
- $deleteField : Field|null = null
Return values
Field_ValidationextractResult()
POSTデータからデータを抜き出し、抽出結果と削除フィールドをまとめて返す
public
extractResult([string $scp = 'field' ][, ACMS_Validator|null $V = null ][, Field|null $deleteField = null ]) : ExtractResult
Why not 子フィールドの再帰も extractResult() で行わない: 再帰呼び出しは $this->deleteField を毎回新しい Field で作り直す(移設前からの挙動)。子の処理は image/file の削除フィールド収集より前に走るため実害は無いが、再帰の戻り値を ExtractResult にすると「どの階層の deleteField が最終結果か」が曖昧になる。 再帰は Field_Validation を返す extract() のまま維持し、最終結果の受け渡しだけを 明示的にする。
Parameters
- $scp : string = 'field'
- $V : ACMS_Validator|null = null
- $deleteField : Field|null = null
Return values
ExtractResultgetDeleteField()
extract()後の削除フィールドを取得
public
getDeleteField() : Field
extractResult() の戻り値から deleteField() を取得してください。 本メソッドは「extract() の直後に呼ぶ」という暗黙の順序に依存します。