ImageFieldHandler
extends UploadFieldHandler
in package
image 型カスタムフィールドのアップロード処理。
data URL の受け取り・回転指定・normal / large / tiny / square の各サイズ生成・ 旧ファイルの削除予約、およびアップロードが無い場合の既存画像の引き継ぎを担う。
移設前は FieldExtractor::extract() 内の 367 行のブランチだった。 ロジックはそのまま移し、外側のフィールドループを抜ける continue のみ return へ置き換えている。
Table of Contents
Properties
Methods
- __construct() : mixed
- Why not クラス内で ACMS_Hook を直接呼ばない: フック発火はグローバル状態(HookFactory / HOOK_ENABLE)へのアクセスを伴うため、呼び出し側の private メソッドに閉じる規約 (development-guidelines.md「サービス層」)に従う。既定 null は、コンテナを経由せず 直接 new する単体テストのためのフォールバック(フックを発火しない)。
- handle() : void
- 1 フィールド分のアップロード処理を行い、結果を $field / $deleteField に書き込む。
- markFieldFileForRemoval() : void
- 削除チェック・差し替え時に旧ファイルを save() 後に物理削除するよう Field にマーキングする。
- notifyMediaCreated() : void
- メディアファイルが新規に作られたことを通知する。
Properties
$mimeTypeValidator
protected
MimeTypeValidator
$mimeTypeValidator
$normalizer
protected
UploadedFilesNormalizer
$normalizer
Methods
__construct()
Why not クラス内で ACMS_Hook を直接呼ばない: フック発火はグローバル状態(HookFactory / HOOK_ENABLE)へのアクセスを伴うため、呼び出し側の private メソッドに閉じる規約 (development-guidelines.md「サービス層」)に従う。既定 null は、コンテナを経由せず 直接 new する単体テストのためのフォールバック(フックを発火しない)。
public
__construct(UploadedFilesNormalizer $normalizer, MimeTypeValidator $mimeTypeValidator[, callable(string): void|null $onMediaCreate = null ]) : mixed
Parameters
- $normalizer : UploadedFilesNormalizer
- $mimeTypeValidator : MimeTypeValidator
- $onMediaCreate : callable(string): void|null = null
handle()
1 フィールド分のアップロード処理を行い、結果を $field / $deleteField に書き込む。
public
handle(string $fd, Field_Validation $field, Field $post, Field $deleteField, ProcessingFiles $processing, array<int, string> $allowFileExtensions) : void
Parameters
- $fd : string
-
フィールドキー(例: 'photo')
- $field : Field_Validation
-
抽出中のカスタムフィールド
- $post : Field
-
抽出中の POST(参照の所有は FieldExtractor 側)
- $deleteField : Field
-
削除対象として積む Field
- $processing : ProcessingFiles
-
このリクエストでアップロード処理中のファイル(image / file で共有)
- $allowFileExtensions : array<int, string>
-
image 型では使用しない(file 型と インターフェースを揃えるために受け取る)
Tags
markFieldFileForRemoval()
削除チェック・差し替え時に旧ファイルを save() 後に物理削除するよう Field にマーキングする。
protected
markFieldFileForRemoval(Field $field, string $fieldKey, string $relPath, "image"|"file" $type) : void
ここでは即時削除せず、save() の DB 書き込み完了後に FieldFileGarbageCollector が 参照チェックを通してから削除する。
Parameters
- $field : Field
-
extract 中の Field
- $fieldKey : string
-
image/file フィールドの key(例: 'photo')
- $relPath : string
-
archives ディレクトリからの相対パス
- $type : "image"|"file"
notifyMediaCreated()
メディアファイルが新規に作られたことを通知する。
protected
notifyMediaCreated(string $realPath) : void
Parameters
- $realPath : string