a-blog cms PHP API Reference

Installer
in package

a-blog cms の初回インストール orchestrator

「空 DB → 管理者 login 可能な状態」までを 1 呼び出しで完結させる。 既存の Web インストーラ (setup/install.php) と CLI の両方から利用できる。

処理順序:

  1. スキーマ作成 (DDL なのでトランザクション外)
  2. sequence 初期化
  3. 空 DB チェック (blog が存在しないこと) --- ここからトランザクション ---
  4. ルート blog 作成 → admin user 作成
  5. 関連 bin (*@<root>) があれば、各々に対応する子 blog を作成
  6. MultiBlogImport::run() で全 bin を一括投入 (内部で全 bin の yaml をマージ: <table>_blog_id を新 blog_id に書き換え、 <table>_id 重複は先勝ちで除去される。同じ ID = 1 行 原則を yaml 段階で保証) --- コミット ---
  7. 各 bin の archives / media / storage / themes を SCRIPT_DIR 配下にコピー (DB トランザクションで巻き戻せないため、コミット成功後に実行)
  8. キャッシュ全クリア

Step 3〜5 のいずれかで失敗するとロールバックして InstallerException を再 throw。 Step 0 (DDL) は MySQL 仕様で暗黙コミットされるためトランザクション外。Step 1/2 は 副作用が小さいため簡単のためトランザクション外に置く (繰り返し呼んでも冪等)。

Table of Contents

Properties

$adminUserFactory  : AdminUserFactory
$blogRepository  : BlogRepository
$multiImport  : MultiBlogImport
$paths  : SiteSeedPathResolver
$schema  : SchemaCreator
$sequence  : SequenceInitializer
$siteSeeder  : SiteSeeder

Methods

__construct()  : mixed
install()  : InstallerResult
assertNoExistingBlog()  : void
createBlog()  : int
ルート/子 blog を作成し、`blog_id` を返す。
makeDryRunSeedResult()  : SiteSeedResult
resolveBlogDomain()  : string
blog のドメインを options 優先、なければ config.server.php の DOMAIN にフォールバックする。

Properties

Methods

__construct()

public __construct(SequenceInitializer $sequence, AdminUserFactory $adminUserFactory, SiteSeeder $siteSeeder, SiteSeedPathResolver $paths, SchemaCreator $schema[, MultiBlogImport $multiImport = new MultiBlogImport() ][, BlogRepository $blogRepository = new BlogRepository() ]) : mixed
Parameters
$sequence : SequenceInitializer
$adminUserFactory : AdminUserFactory
$siteSeeder : SiteSeeder
$paths : SiteSeedPathResolver
$schema : SchemaCreator
$multiImport : MultiBlogImport = new MultiBlogImport()
$blogRepository : BlogRepository = new BlogRepository()

assertNoExistingBlog()

private assertNoExistingBlog() : void

createBlog()

ルート/子 blog を作成し、`blog_id` を返す。

private createBlog(int $parentBlogId, string $binName, string|null $explicitCode, string|null $explicitName, string $domain) : int

blog_code / blog_name を正規化したうえで、nested-set の予約と INSERT を BlogRepository の プリミティブ(findLastChildInParent / findBoundary / shiftLeftRightAfter / nextBlogId / insert)を 合成して行う(管理画面 ACMS_POST_Blog_Insert と同じ作法。生 SQL は BlogRepository に集約済み)。

Parameters
$parentBlogId : int
$binName : string
$explicitCode : string|null
$explicitName : string|null
$domain : string
Return values
int

resolveBlogDomain()

blog のドメインを options 優先、なければ config.server.php の DOMAIN にフォールバックする。

private resolveBlogDomain(InstallerOptions $options) : string

実際の解決は InstallerOptions::effectiveBlogDomain() が担う。Installer は 「フォールバック値として DOMAIN 定数を提供する」役割だけ持つ。

Web インストーラ (setup/install.php) は blogDomain: DOMAIN を明示的に渡しているが、 CLI 経由ではユーザが --blog-domain を毎回付けなくても同じ挙動になるようにここで吸収する。

Parameters
$options : InstallerOptions
Return values
string

        
On this page

Search results