a-blog cms PHP API Reference

FileFieldHandler extends UploadFieldHandler
in package

file 型カスタムフィールドのアップロード処理。

テキストファイル(PHP 等のスクリプトの可能性がある)判定・MIME と拡張子の検証・ 保存先パスの確保・旧ファイルの削除予約を担う。

移設前は FieldExtractor::extract() 内の 325 行のブランチだった。 ロジックはそのまま移し、外側のフィールドループを抜ける continue のみ return へ置き換えている。

Table of Contents

Properties

$mimeTypeValidator  : MimeTypeValidator
$normalizer  : UploadedFilesNormalizer

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

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<string|int, mixed> $allowFileExtensions) : void
Parameters
$fd : string

フィールドキー(例: 'photo')

$field : Field_Validation

抽出中のカスタムフィールド

$post : Field

抽出中の POST(参照の所有は FieldExtractor 側)

$deleteField : Field

削除対象として積む Field

$processing : ProcessingFiles

このリクエストでアップロード処理中のファイル(image / file で共有)

$allowFileExtensions : array<string|int, mixed>

アップロードを許可する拡張子

Tags
inheritDoc

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

        
On this page

Search results