環境ごとに異なる設定ファイルを読み込む

concrete5 には、設定ファイルのファイル名を環境ごとに変更する機能が搭載されています。/application/bootstrap/start.php を開いてみましょう。インストール直後は、local (ローカルサイト)と production(本番サイト)の2つを切り替える設定のサンプルが記載されています。環境を切り替える基準はサーバーのホスト名です。

$app->detectEnvironment(
    array(
        'local' => array(
            'hostname'
        ),
        'production' => array(
            'live.site'
        )
    ));

配列のキー(上記の記述では localproduction)が環境名、配列の値(上記の記述では hostnamelive.site)がホスト名です。ホスト名は複数指定が可能です。

環境固有の設定ファイルを作成するには、環境名と . (ドット)を先頭に付けた名前で設定ファイルを作成します。例えば、application/config/database.php はデータベース接続情報が格納された設定ファイルですが、application/config/local.database.php という設定ファイルを作成することで、local というキーの環境でのみ使われるデータベース接続情報を保存することができます。

バージョン 5.7.5 以降では、環境変数 CONCRETE5_ENV で指定することも可能です。