a-blog cms PHP API Reference

InstallerOptions
in package

FinalYes

Installer 実行オプション (不変 DTO)

「空 DB → 使える状態」に必要な情報をまとめる:

  • DB 接続情報 (config.server.php に書き込むための値)
  • どの bin を投入するか (binName + 関連 bin 自動検出)
  • 最初の blog の名前 / code / domain
  • admin user の code / name / password / mail

Table of Contents

Constants

DOMAIN_FORMAT_PATTERN  = '@^([a-z0-9]+[a-z0-9-]*(?<=[a-z0-9])\.)+[a-z]+[a-z0-9-]*(?<=[a-z0-9])\.?$|' . '^(?:\d{1,3}\.){3}\d{1,3}$|' . '^localhost$@'
`Acms\Services\Blog\Helper::isDomain()` の形式チェック部分 (ライセンス判定・DB 参照を除く) と同じ正規表現。ドメイン形式 / IPv4 アドレス / localhost のいずれかを許可する。

Properties

$adminUserCode  : string
$adminUserMail  : string
$adminUserName  : string
$adminUserPassword  : string
$binName  : string
$blogCode  : string|null
$blogDomain  : string|null
$blogName  : string|null
$dbCharset  : string|null
$dbHost  : string|null
$dbName  : string|null
$dbPassword  : string|null
$dbPort  : int|null
$dbPrefix  : string|null
$dbUser  : string|null
$dryRun  : bool
$rootOnly  : bool
$skipCacheFlush  : bool

Methods

__construct()  : mixed
effectiveBlogDomain()  : string
実際に使う blog ドメインを返す。
hasAnyDbOverride()  : bool
DB 設定のいずれかが指定されているか (= config.server.php を書き換える必要があるか)
toServerConfigValues()  : array<string, string|int>
config.server.php に書き込む define() key => value の配列を作る。 指定されていない値は含まない。
validateAdminUserCode()  : string|null
管理者ログイン ID (user_code) のバリデーション。
validateAdminUserMail()  : string|null
管理者メールアドレス (user_mail) のバリデーション。
validateAdminUserName()  : string|null
管理者表示名 (user_name) のバリデーション。
validateBlogCode()  : string|null
最初の blog の code (blog_code) のバリデーション。
validateBlogDomain()  : string|null
最初の blog の domain (blog_domain) のバリデーション。
validateBlogName()  : string|null
最初の blog の表示名 (blog_name) のバリデーション。
countCharacters()  : int
`ACMS_Validator::maxlength` と同じ数え方で文字数を数える。 CRLF を 1 文字扱いに正規化してから `mb_strlen` (UTF-8) で数える。
validate()  : void

Constants

DOMAIN_FORMAT_PATTERN

`Acms\Services\Blog\Helper::isDomain()` の形式チェック部分 (ライセンス判定・DB 参照を除く) と同じ正規表現。ドメイン形式 / IPv4 アドレス / localhost のいずれかを許可する。

private mixed DOMAIN_FORMAT_PATTERN = '@^([a-z0-9]+[a-z0-9-]*(?<=[a-z0-9])\.)+[a-z]+[a-z0-9-]*(?<=[a-z0-9])\.?$|' . '^(?:\d{1,3}\.){3}\d{1,3}$|' . '^localhost$@'

Properties

Methods

__construct()

public __construct(string $binName, string $adminUserCode, string $adminUserName, string $adminUserPassword, string $adminUserMail[, string|null $blogName = null ][, string|null $blogCode = null ][, string|null $blogDomain = null ][, bool $rootOnly = false ][, bool $skipCacheFlush = false ][, bool $dryRun = false ][, string|null $dbHost = null ][, string|null $dbName = null ][, string|null $dbUser = null ][, string|null $dbPassword = null ][, string|null $dbPrefix = null ][, int|null $dbPort = null ][, string|null $dbCharset = null ]) : mixed
Parameters
$binName : string
$adminUserCode : string
$adminUserName : string
$adminUserPassword : string
$adminUserMail : string
$blogName : string|null = null
$blogCode : string|null = null
$blogDomain : string|null = null
$rootOnly : bool = false
$skipCacheFlush : bool = false
$dryRun : bool = false
$dbHost : string|null = null
$dbName : string|null = null
$dbUser : string|null = null
$dbPassword : string|null = null
$dbPrefix : string|null = null
$dbPort : int|null = null
$dbCharset : string|null = null

effectiveBlogDomain()

実際に使う blog ドメインを返す。

public effectiveBlogDomain([string|null $fallback = null ]) : string

blogDomain 指定が最優先。未指定 (null/空文字) のときは $fallback を採用する。 Installer の呼び出し側が config.server.php の DOMAIN 定数を $fallback に渡す。

Web インストーラ (setup/install.php) は blogDomain: DOMAIN を直接渡すが、 CLI 経由ではユーザが --blog-domain を毎回指定しない運用が想定されるため、 フォールバックを DTO 側で吸収しておくと CLI / Web どちらでも同じ振る舞いになる。

Parameters
$fallback : string|null = null
Return values
string

hasAnyDbOverride()

DB 設定のいずれかが指定されているか (= config.server.php を書き換える必要があるか)

public hasAnyDbOverride() : bool
Return values
bool

toServerConfigValues()

config.server.php に書き込む define() key => value の配列を作る。 指定されていない値は含まない。

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

validateAdminUserCode()

管理者ログイン ID (user_code) のバリデーション。

public static validateAdminUserCode(string $code) : string|null

管理画面の ACMS_POST_User_Insert と同等の規則:

  • 必須 / 64 文字以下 / 英数字・ハイフン・アンダースコア のみ
  • さらに isValidCode() (危険なパス記号や制御文字を弾く防御) を通す

戻り値: 妥当なら null、不正ならエラーメッセージ (1 行)。 CLI の対話プロンプトと、非対話ルートの validate() の両方から再利用する。

Parameters
$code : string
Return values
string|null

validateAdminUserMail()

管理者メールアドレス (user_mail) のバリデーション。

public static validateAdminUserMail(string $mail) : string|null

管理画面と同等: 必須 / 255 文字以下 / メールアドレス形式。 形式チェックには filter_var(FILTER_VALIDATE_EMAIL) を使う (CLI の依存を最小化)。

Parameters
$mail : string
Return values
string|null

validateAdminUserName()

管理者表示名 (user_name) のバリデーション。

public static validateAdminUserName(string $name) : string|null

管理画面と同等: 必須 / 255 文字以下。

Parameters
$name : string
Return values
string|null

validateBlogCode()

最初の blog の code (blog_code) のバリデーション。

public static validateBlogCode(string|null $code) : string|null

管理画面の ACMS_POST_Blog_Insert と同等: 255 文字以下 / 予約語と非衝突 (isReserved()) / URL として安全な文字列 (isValidCode())。DB 上の重複チェック (Blog::isCodeExists()) は稼働中サイトへの追加ブログを前提にした業務ルールであり、 Installer は事前に空 DB であることを保証済み(Installer::assertNoExistingBlog()) のためここには含めない。 未指定 (null/空文字) はドメイン直下運用として妥当なため対象外とする (ルート blog は Installer 側で常に blog_code を空文字に固定する)。

Parameters
$code : string|null
Return values
string|null

validateBlogDomain()

最初の blog の domain (blog_domain) のバリデーション。

public static validateBlogDomain(string|null $domain) : string|null

管理画面の ACMS_POST_Blog_Insert と同等の形式チェック (ドメイン形式 / IPv4 / localhost) のみを行う。Blog::isDomain() が併せて行うライセンス判定・既存ドメインとの重複チェックは、 稼働中サイトへの追加ブログを前提にした業務ルールであり、空 DB への初回インストールには 適用できないためここには含めない。 未指定 (null/空文字) は config.server.php の DOMAIN 定数へフォールバックする仕様 (self::effectiveBlogDomain()) のため対象外とする。

Parameters
$domain : string|null
Return values
string|null

validateBlogName()

最初の blog の表示名 (blog_name) のバリデーション。

public static validateBlogName(string|null $name) : string|null

管理画面の ACMS_POST_Blog_Insert と同等: 必須 / 255 文字以下。 ただし Installer は未指定 (null/空文字) のとき binName にフォールバックする仕様のため、 ここでの「必須」は適用しない (null/空文字はフォールバックの余地として妥当とする)。 値が指定された場合のみ文字数を検査する。

文字数のカウントは self::countCharacters() を使う。バイト数 (strlen) ではなく 文字数で数えるのは、日本語のブログ名(3 バイト/文字が多い UTF-8)を不当に短く 見積もらないため(ACMS_Validator::maxlength と同じ数え方に揃える)。

戻り値: 妥当なら null、不正ならエラーメッセージ (1 行)。

Parameters
$name : string|null
Return values
string|null

countCharacters()

`ACMS_Validator::maxlength` と同じ数え方で文字数を数える。 CRLF を 1 文字扱いに正規化してから `mb_strlen` (UTF-8) で数える。

private static countCharacters(string $value) : int
Parameters
$value : string
Return values
int

        
On this page

Search results