🔥

CodeIgniter4で新しいCI_ENVIRONMENTを定義する

2021/12/17に公開

CodeIgniter Advent Calendar 2021

CI_ENVIRONMENT

CodeIgniter4ではデフォルトで、production, development, testing の3つ環境が定義されています。

  • production ... デフォルト。本番環境用
  • development ... 開発環境用
  • testing ... PHPUnitのテスト環境用

何も設定しないと production となり、エラーが起こっても「Whoops!」としか表示されません。

設定変更は、.env ファイルか環境変数を設定することで可能です。通常、開発時には、development を指定します。

.env

CI_ENVIRONMENT = development

testing はPHPUnitの実行時に使われる特殊な環境です。CodeIgniter内部の振る舞いがPHPUnit用に変わりますので、開発やテスト環境で指定することはできません。

例えば、ステージングで production というのは紛らわしいのでいやだ、など定義済みの環境では合わない要求がある場合、新しい環境を定義します。

新しい環境の作成方法

新しい環境を追加するのに必要なことは、Bootファイルを作成するだけです。

例えば、staging 環境を作成したい場合は、app/Config/Boot/staging.php を作成します。

すでに、app/Config/Boot/development.phpapp/Config/Boot/production.php がありますので、それらをコピーして作成してください。

なお、app/Config/Boot/staging.php がない状態で、CI_ENVIRONMENTstaging を設定すると、以下のエラーメッセージが表示されます。

The application environment is not set correctly.

参考

Discussion