a-blog cms PHP API Reference

Import
in package

コンフィグセット単体のインポート処理。フォーム/モジュールのインポートと同様に専用クラスとして用意する。

config_set には form_code のような自然キーが無いため、既存セットとの同一性判定はできない。 そのため常に新規の config_set として作成する(既存セットへの上書きは行わない)。

config_set_scope は常に 'local' へ強制する。取り込み元が 'global' のままだと、 インポート先のブログツリー全体に意図せず影響するため。

config_value がメディアIDを参照する既知のキー(ImportTrait と同じ一覧)は、インポート先 ブログに対応するメディアが存在するとは限らず、単純な持ち込みは誤った参照を生む可能性があるため、 値をクリアして警告として記録する(安全側のデフォルト。CMS-7831)。

カテゴリーIDを参照するキーは、Export が category_id を安定した自然キーである category_code に変換してエクスポートしているため、インポート先ブログ内で同じ category_code を 持つカテゴリーを探し、一意に見つかればその category_id へ解決する(ブログを跨いだ移動でも カテゴリー参照を維持できる)。該当が無い・複数該当して一意に決まらない場合は、従来と同様に 値をクリアして警告として記録する。

ルール別上書き設定(config_rule_id が設定されている config 行)は Export が エクスポート対象外にしているため、このクラスが受け取る YAML にはそもそも含まれない。 rule_id はブログ間で値の互換性が無く、かつ rule_name にも一意性の保証が無い (同名の別ルールを複数作成できる)ため、ルール名による自動突合は意図しないルールへの 誤った紐付けを招く可能性がある。ルールの表示条件自体もインポート先で同じ意味を持つとは 限らないため、ルール別上書きの移送は行わない(CMS-7831)。

認可(config_set 管理権限)と CSRF はハンドラ側の責務とする。

Table of Contents

Constants

CATEGORY_ID_CONFIG_KEYS  = ['entry_edit_category_default', 'entry_edit_category_filter', 'entry_edit_sub_category_filter', 'static_page_cid', 'static_archive_cid']
カテゴリーIDを値として保持する config キー。
MEDIA_ID_CONFIG_KEYS  = ['media_banner_mid', 'navigation_media']
メディアIDを値として保持する config キー。

Properties

$clearedKeys  : array<int, string>
$repository  : RepositoryInterface

Methods

__construct()  : mixed
getClearedKeys()  : array<int, string>
インポート時にクリアされた(安全側で値を捨てた)config_key の一覧を取得する
run()  : int
コンフィグセットを YAML(パース済み配列)からインポートし、config_set_id を返す
extractConfigSetRecord()  : array<string, mixed>
insertConfigRow()  : void
replaceConfigSet()  : int
既存のコンフィグセットを置き換える準備をする(meta更新 + 既存configの全削除)。 対象が存在しない、$blogId と異なるブログに属する、または config_set_type が インポートするYAMLと異なる場合は例外を投げる(type の異なるセットへの誤った上書きを防ぐ)。
resolveCategoryConfigValue()  : string
カテゴリー参照キーの config_value(Export が変換した category_code、またはコード変換に 失敗して残った旧 category_id)を、インポート先ブログの category_id へ解決する。 解決できなければクリアして警告として記録する(安全側のデフォルト)。

Constants

CATEGORY_ID_CONFIG_KEYS

カテゴリーIDを値として保持する config キー。

private array<string|int, string> CATEGORY_ID_CONFIG_KEYS = ['entry_edit_category_default', 'entry_edit_category_filter', 'entry_edit_sub_category_filter', 'static_page_cid', 'static_archive_cid']

ImportTrait::$categoryIdConfigKeys と同じ一覧。

MEDIA_ID_CONFIG_KEYS

メディアIDを値として保持する config キー。

private array<string|int, string> MEDIA_ID_CONFIG_KEYS = ['media_banner_mid', 'navigation_media']

ImportTrait::$mediaIdConfigKeys と同じ一覧。

Properties

$clearedKeys

private array<int, string> $clearedKeys = []

Methods

getClearedKeys()

インポート時にクリアされた(安全側で値を捨てた)config_key の一覧を取得する

public getClearedKeys() : array<int, string>
Return values
array<int, string>

run()

コンフィグセットを YAML(パース済み配列)からインポートし、config_set_id を返す

public run(int $blogId, array<string, mixed> $yaml[, int|null $replaceConfigSetId = null ]) : int

$replaceConfigSetId を指定すると、新規作成の代わりに既存のコンフィグセットを置き換える (名前・説明を更新し、属する config を全削除してから再投入する)。置き換え対象の config_set_type / config_set_scope は変更しない。対象が存在しない、または $blogId と異なるブログに属する場合は例外を投げる(CMS-7831 追加要件)。

Parameters
$blogId : int
$yaml : array<string, mixed>
$replaceConfigSetId : int|null = null

指定すると新規作成せずこのIDのセットを置き換える

Tags
throws
RuntimeException
Return values
int —

作成または置き換えた config_set_id

extractConfigSetRecord()

private extractConfigSetRecord(array<string, mixed> $yaml) : array<string, mixed>
Parameters
$yaml : array<string, mixed>
Return values
array<string, mixed>

insertConfigRow()

private insertConfigRow(int $newSetId, int $blogId, array<string, mixed> $record) : void
Parameters
$newSetId : int
$blogId : int
$record : array<string, mixed>

replaceConfigSet()

既存のコンフィグセットを置き換える準備をする(meta更新 + 既存configの全削除)。 対象が存在しない、$blogId と異なるブログに属する、または config_set_type が インポートするYAMLと異なる場合は例外を投げる(type の異なるセットへの誤った上書きを防ぐ)。

private replaceConfigSet(int $replaceConfigSetId, int $blogId, array{config_set_name: string, config_set_description: string} $meta, string|null $configSetType) : int
Parameters
$replaceConfigSetId : int
$blogId : int
$meta : array{config_set_name: string, config_set_description: string}
$configSetType : string|null
Return values
int

resolveCategoryConfigValue()

カテゴリー参照キーの config_value(Export が変換した category_code、またはコード変換に 失敗して残った旧 category_id)を、インポート先ブログの category_id へ解決する。 解決できなければクリアして警告として記録する(安全側のデフォルト)。

private resolveCategoryConfigValue(int $blogId, string $key, string $categoryCode) : string
Parameters
$blogId : int
$key : string
$categoryCode : string
Return values
string

        
On this page

Search results