RepositoryInterface
in
フォームの永続化(データベースアクセス)を抽象化するコントラクト。
SQL・テーブル/カラム名・シーケンス、生レコード↔ドメインの変換、入力 Field↔保存カラムの変換は実装側に閉じる。
Table of Contents
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 は維持)
Methods
delete()
フォーム本体と、それに紐づく投稿ログをまとめて削除する(フォーム集約の削除)
public
delete(int $formId) : void
form_id は主キーのためブログIDは指定不要。
Parameters
- $formId : int
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 に付与するサフィックス
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
Return values
boolexistsMailInLog()
投稿ログに指定の宛先メールが存在するかどうか(照合用の正規表現化は実装側で行う)
public
existsMailInLog(int $formId, string $mail, int $blogId) : bool
Parameters
- $formId : int
- $mail : string
- $blogId : int
Return values
boolfindByCodeInTree()
フォームをコードで取得し、構造化(ドメイン)配列で返す(ブログツリー・グローバルスコープ考慮)
public
findByCodeInTree(string $code, int $blogId) : Field}|null
Parameters
- $code : string
- $blogId : int
Return values
Field}|nullfindById()
フォームをIDで取得し、構造化(ドメイン)配列で返す
public
findById(int $formId) : Field}|null
Parameters
- $formId : int
Return values
Field}|nullfindIdByCodeInBlog()
対象ブログ内で form_code に一致する form_id を取得する
public
findIdByCodeInBlog(string $code, int $blogId) : int|null
Parameters
- $code : string
- $blogId : int
Return values
int|nullfindRawById()
フォームをIDで取得し、生レコードを返す(エクスポートで原本をそのまま扱うため)
public
findRawById(int $formId) : array<string, mixed>|null
Parameters
- $formId : int
Return values
array<string, mixed>|nullinsert()
フォームを新規作成し form_id を返す
public
insert(int $blogId, Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string} $form) : int
引数 $form は入力 Field(編集画面の保存)または保存属性の連想配列(インポート等)のどちらも受け取れる。 Field の場合の保存カラムへの変換(form_data のシリアライズ含む)は実装側で行う。
Parameters
- $blogId : int
- $form : Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}
Return values
intoptimizeSequence()
form_id シーケンスを最適化する
public
optimizeSequence() : void
update()
フォームを更新する(form_id・form_current_serial は維持)
public
update(int $formId, int $blogId, Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string} $form) : void
引数 $form は入力 Field または保存属性の連想配列のどちらも受け取れる。
連想配列を渡した場合は、含まれるキーに対応するカラムだけを更新する(部分更新)。
例えば ['data' => $serialized] だけ渡せば form_data のみを上書きし、code/name/scope/log は変更しない。
Field を渡した場合は全カラム(code/name/scope/log/data)を更新する。
Parameters
- $formId : int
- $blogId : int
- $form : Field|array{code?: string, name?: string, scope?: string, log?: "0"|"1", data?: string}