Repository
in package
implements
RepositoryInterface
フォームの永続化を担う実装。
SQL・テーブル/カラム名・シーケンス操作に加えて、 生レコード→ドメイン配列の変換(toArray)と、入力 Field→保存カラムの変換(toAttributes / form_data のシリアライズ)を private メソッドとして内部に閉じ込める。
Table of Contents
Interfaces
- RepositoryInterface
- フォームの永続化(データベースアクセス)を抽象化するコントラクト。
Methods
- delete() : void
- フォーム本体と、それに紐づく投稿ログをまとめて削除する(フォーム集約の削除)
- duplicate() : int
- フォームを複製し、新しい form_id を返す
- existsCodeInTree() : bool
- 指定コードのフォームがツリー/スコープ上に存在するかどうか
- existsMailInLog() : bool
- 投稿ログに指定の宛先メールが存在するかどうか(照合用の正規表現化は実装側で行う)
- findByCodeInTree() : Field}|null
- フォームをコードで取得し、構造化(ドメイン)配列で返す(ブログツリー・グローバルスコープ考慮)
- findById() : Field}|null
- フォームをIDで取得し、構造化(ドメイン)配列で返す
- findIdByCodeInBlog() : int|null
- 対象ブログ内で form_code に一致する form_id を取得する
- findRawById() : array<string, mixed>|null
- フォームをIDで取得し、生レコードを返す(エクスポートで原本をそのまま扱うため)
- insert() : int
- フォームを新規作成し form_id を返す
- optimizeSequence() : void
- form_id シーケンスを最適化する
- update() : void
- フォームを更新する(form_id・form_current_serial は維持)
- normalizeAttributes() : array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}
- insert / update の引数(Field または保存属性の連想配列)を保存属性へ正規化する
- serializeData() : string
- 入力 Field から form_data 保存用のシリアライズ文字列を生成する
- toArray() : Field}
- フォームの生レコードを構造化(ドメイン)配列へ変換する
- toAttributes() : array{code: string, name: string, scope: string, log: "0"|"1", data: string}
- 入力 Field を form テーブルの保存属性へ変換する
Methods
delete()
フォーム本体と、それに紐づく投稿ログをまとめて削除する(フォーム集約の削除)
public
delete(int $formId) : void
Parameters
- $formId : int
Tags
duplicate()
フォームを複製し、新しい form_id を返す
public
duplicate(int $sourceFormId, int $blogId, string $codeSuffix, string $nameSuffix) : int
Parameters
- $sourceFormId : int
- $blogId : int
- $codeSuffix : string
-
form_code に付与するサフィックス(末尾に新ID も付与される)
- $nameSuffix : string
-
form_name に付与するサフィックス
Tags
Return values
intexistsCodeInTree()
指定コードのフォームがツリー/スコープ上に存在するかどうか
public
existsCodeInTree(string $code, int|null $excludeFormId, string $scope, int $blogId) : bool
Parameters
- $code : string
- $excludeFormId : int|null
-
除外する form_id
- $scope : string
-
'local' | 'global'
- $blogId : int
Tags
Return values
boolexistsMailInLog()
投稿ログに指定の宛先メールが存在するかどうか(照合用の正規表現化は実装側で行う)
public
existsMailInLog(int $formId, string $mail, int $blogId) : bool
Parameters
- $formId : int
- $mail : string
- $blogId : int
Tags
Return values
boolfindByCodeInTree()
フォームをコードで取得し、構造化(ドメイン)配列で返す(ブログツリー・グローバルスコープ考慮)
public
findByCodeInTree(string $code, int $blogId) : Field}|null
Parameters
- $code : string
- $blogId : int
Tags
Return values
Field}|nullfindById()
フォームをIDで取得し、構造化(ドメイン)配列で返す
public
findById(int $formId) : Field}|null
Parameters
- $formId : int
Tags
Return values
Field}|nullfindIdByCodeInBlog()
対象ブログ内で form_code に一致する form_id を取得する
public
findIdByCodeInBlog(string $code, int $blogId) : int|null
Parameters
- $code : string
- $blogId : int
Tags
Return values
int|nullfindRawById()
フォームをIDで取得し、生レコードを返す(エクスポートで原本をそのまま扱うため)
public
findRawById(int $formId) : array<string, mixed>|null
Parameters
- $formId : int
Tags
Return values
array<string, mixed>|nullinsert()
フォームを新規作成し form_id を返す
public
insert(int $blogId, Field|array<string|int, mixed> $form) : int
Parameters
- $blogId : int
- $form : Field|array<string|int, mixed>
Tags
Return values
intoptimizeSequence()
form_id シーケンスを最適化する
public
optimizeSequence() : void
Tags
update()
フォームを更新する(form_id・form_current_serial は維持)
public
update(int $formId, int $blogId, Field|array<string|int, mixed> $form) : void
Parameters
- $formId : int
- $blogId : int
- $form : Field|array<string|int, mixed>
Tags
normalizeAttributes()
insert / update の引数(Field または保存属性の連想配列)を保存属性へ正規化する
private
normalizeAttributes(Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string} $form) : array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}
Parameters
- $form : Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}
Return values
array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}serializeData()
入力 Field から form_data 保存用のシリアライズ文字列を生成する
private
serializeData(Field $form) : string
Parameters
- $form : Field
Return values
stringtoArray()
フォームの生レコードを構造化(ドメイン)配列へ変換する
private
toArray(array<string, mixed> $row) : Field}
Parameters
- $row : array<string, mixed>
Return values
Field}toAttributes()
入力 Field を form テーブルの保存属性へ変換する
private
toAttributes(Field $form) : array{code: string, name: string, scope: string, log: "0"|"1", data: string}
Parameters
- $form : Field
-
code/name/scope/log と各フィールド設定を持つ入力