CodeIgniter4の設定

(2022-12-17 追記) この記事は古くなっています。 「CodeIgniter 4.2の初期設定」 を参照してください。

この記事は CodeIgniter Advent Calendar 2020 - Qiita の6日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

設定ファイル

CodeIgniter4 の設定ファイルは、プロジェクトのルートに配置する .env ファイルと、app/Config/ 以下の設定ファイルがあります。

.env ファイル

.env はインストール直後には存在せず、サンプルとしての env ファイルが用意されています。env.env にコピーすれば OK です。

  • .env は環境変数を設定するためのものです。開発環境固有の設定値(データベース接続情報など)を設定します。
  • .env は Git などのバージョン管理に含めてはいけません。
  • .env はすでに定義されている環境変数は変更しません。
  • CodeIgniter4 の設定クラスがインスタンス化される時に、対応する環境変数があるとその値がプロパティに自動的に設定されます。

設定の変更箇所

多くのプロジェクトで変更するであろう設定は以下になります。

.env ファイル

開発環境では、.envCI_ENVIRONMENTdevelopment に変更します。それと、app.baseURL を設定します。

--- env 2020-07-16 12:44:28.000000000 +0900
+++ .env    2020-12-10 11:57:37.000000000 +0900
@@ -14,13 +14,13 @@
 # ENVIRONMENT
 #--------------------------------------------------------------------

-# CI_ENVIRONMENT = production
+CI_ENVIRONMENT = development

 #--------------------------------------------------------------------
 # APP
 #--------------------------------------------------------------------

-# app.baseURL = ''
+app.baseURL = http://localhost:8080/
 # app.forceGlobalSecureRequests = false

 # app.sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'

(2020-12-10 追記) app.baseURL の設定を追記しました。

それとデータベース接続設定を変更するでしょう。

@@ -49,11 +49,11 @@
 # DATABASE
 #--------------------------------------------------------------------

-# database.default.hostname = localhost
-# database.default.database = ci4
-# database.default.username = root
-# database.default.password = root
-# database.default.DBDriver = MySQLi
+database.default.hostname = localhost
+database.default.database = ci4tutorial
+database.default.username = dbuser
+database.default.password = dbpassword
+database.default.DBDriver = MySQLi

 # database.tests.hostname = localhost
 # database.tests.database = ci4

また、ログレベルを上げた方がいいでしょう。

@@ -99,3 +99,5 @@
 # honeypot.name = 'honeypot'
 # honeypot.template = '<label>{label}</label><input type="text" name="{name}" value=""/>'
 # honeypot.container = '<div style="display:none">{template}</div>'
+
+logger.threshold = 9

app/Config 設定ファイル

設定ファイルでは、デフォルトの言語を日本語 ja に、タイムゾーンを日本時間に変更するでしょう。

なお、システムメッセージを日本語にするには、別途、codeigniter4/translations のインストールが必要です。CodeIgniter4のシステムメッセージを日本語にする を参照してください。

--- a/app/Config/App.php
+++ b/app/Config/App.php
@@ -63,7 +63,7 @@ class App extends BaseConfig
| should run under for this request.
|
*/
-   public $defaultLocale = 'en';
+   public $defaultLocale = 'ja';

        /*
        |--------------------------------------------------------------------------
@@ -99,7 +99,7 @@ class App extends BaseConfig
| dates with the date helper, and can be retrieved through app_timezone()
|
*/
-   public $appTimezone = 'America/Chicago';
+   public $appTimezone = 'Asia/Tokyo';

        /*
        |--------------------------------------------------------------------------

デフォルトでは off の CSRF 保護のフィルタを有効にします。

--- a/app/Config/Filters.php
+++ b/app/Config/Filters.php
@@ -16,7 +16,7 @@ class Filters extends BaseConfig
public $globals = [
'before' => [
//'honeypot'
-                   // 'csrf',
+                  'csrf',
                ],
                'after'  => [
                        'toolbar',

ひとまず、これくらいでしょうか。

この記事は CodeIgniter Advent Calendar 2020 - Qiita の6日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

参考

Date: 2020/12/06

Tags: codeigniter, codeigniter4