CodeIgniter4の各種設定項目のまとめ記事
CodeIgniter4.4.4の各種設定項目を後から確認できるようまとめておきたい。追加で設定変更等を行った場合は本記事に追記していく。
目次
環境設定(テスト環境 or 本番環境)
.envファイルのCI_ENVIRONMENTで設定する。
#テスト環境の場合 CI_ENVIRONMENT = development #本番環境の場合 CI_ENVIRONMENT = production
サイトのURL設定
.envファイルのbaseURLで設定する。
app.baseURL = 'https://test.com/codeigniter4/'
MySQL設定
/app/Config/Database.phpで設定する。.envファイルでも設定できるみたいだけど複数データベースを使用する可能性も考慮しDatabase.phpで設定した。変更箇所は以下の【】内になる。
public array $default = [ 'DSN' => '', 'hostname' => 'localhost', 'username' => '【ユーザ名】', 'password' => '【パスワード'】, 'database' => '【データベース名】', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => true, 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, 'numberNative' => false, ];
タイムゾーン設定
/app/Config/App.phpの$appTimezoneで設定する。
#変更前 public string $appTimezone = 'UTC'; #変更後 public string $appTimezone = 'Asia/Tokyo';
URL最後にスラッシュがあった場合にリダイレクトされる設定変更
「https://test.com/codeigniter4/test/」というURLを開こうとすると「https://test.com/codeigniter4/public/test」のようなURLにリダイレクトされる。スラッシュの有無はそこまで気にしないけどURLに「public」という文字が入るのは微妙。なので「/public/.htaccess」の以下部分をコメントアウトした(これが正しい設定かは不明)。
# Redirect Trailing Slashes... #RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{REQUEST_URI} (.+)/$ #RewriteRule ^ %1 [L,R=301]
URLにindex.phpを付けない設定
これを設定しておかないとhelper等でURLを記述した場合に変なURLになる。具体的にはformのhelperを用いて「form_open('contact/confirm')」を記述すると「https://test.com/codeigniter4/index.php/contact/confirm」というURLが出力された。
そのため/app/Config/App.phpの$indexPageで設定する。
#変更前 public string $indexPage = 'index.php'; #変更後 public string $indexPage = '';
バリデートのエラーメッセージを日本語化させる設定
Validation.phpの用意
「/codeigniter4/app/Language/ja」ディレクトリを作成し、以下を記述したValidation.phpをアップロードする。
<?php /** * Validation language strings. * * @package CodeIgniter * @author CodeIgniter Dev Team * @copyright 2019-2020 CodeIgniter Foundation * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 4.0.0 * @filesource * * @codeCoverageIgnore */ return [ // Core Messages 'noRuleSets' => 'バリデーションに必要なルールが設定されていません。', 'ruleNotFound' => '{0} は有効なルールではありません。', 'groupNotFound' => '{0} はバリデーションルールグループではありません。', 'groupNotArray' => '{0} ルールグループは配列ではありません。', 'invalidTemplate' => '{0} は有効なバリデーションテンプレートではありません。', // Rule Messages 'alpha' => '{field} には、アルファベットのみを入力してください。', 'alpha_dash' => '{field} には、半角英数字、アンダースコア、ダッシュのみを入力してください。', 'alpha_numeric' => '{field} には、半角英数字のみを入力してください。', 'alpha_numeric_punct' => '{field} には、半角英数字、半角スペース、~ ! # $ % & * - _ + = | : . のみを入力してください。', 'alpha_numeric_space' => '{field} には、半角英数字と半角スペースのみを入力してください。', 'alpha_space' => '{field} には、アルファベットと半角スペースのみを入力してください。', 'decimal' => '{field} には、半角で10進数を入力してください。', 'differs' => '{field} には、{param} と異なる値を入力してください。。', 'equals' => '{field} は、{param} と一致しなければなりません。', 'exact_length' => '{field} の長さは {param} 文字でなければなりません。', 'greater_than' => '{field} には、{param} より大きい半角数値を入力してください。', 'greater_than_equal_to' => '{field} には、{param} 以上の半角数値を入力してください。', 'hex' => '{field} には、16進数文字を入力してください。', 'in_list' => '{field} には、{param} のいずれかの値を入力してください。', 'integer' => '{field} には、半角整数を入力してください。', 'is_natural' => '{field} には、半角数字のみを入力してください。', 'is_natural_no_zero' => '{field} には、半角数字のみを、0より大きい値で入力してください。', 'is_not_unique' => '{field} には、データベース内の既存の値が含まれている必要があります。', 'is_unique' => '{field} には、一意の値が含まれている必要があります。', 'less_than' => '{field} には、{param} より小さい半角数値を入力してください。', 'less_than_equal_to' => '{field} には、{param} 以下の半角数値を入力してください。', 'matches' => '{field} は {param} と一致しません。', 'max_length' => '{field} は {param} 文字以内で入力してください。', 'min_length' => '{field} は {param} 文字以上で入力してください。', 'not_equals' => '{field} は {param} と一致しません。', 'numeric' => '{field} には、半角数字のみを入力してください。', 'regex_match' => '{field} の形式が正しくありません。', 'required' => '{field} は、必須入力です。', 'required_with' => '{param} が存在する場合、{field} は必須となります。', 'required_without' => '{param} が存在しない場合、{field} は必須となります。', 'timezone' => '{field} は有効なタイムゾーンではありません。', 'valid_base64' => '{field} には、有効なbase64文字列を入力してください。', 'valid_email' => '{field} は、有効なメールアドレスではありません。', 'valid_emails' => '{field} に、無効なメールアドレスが含まれています。', 'valid_ip' => '{field} には、有効なIPアドレスを入力してください。', 'valid_url' => '{field} には、有効なURLを入力してください。', 'valid_date' => '{field} には、有効な日付を入力してください。', // Credit Cards 'valid_cc_num' => '{field} は、有効なクレジットカード番号ではありません。', // Files 'uploaded' => '{field} は、有効なファイルではありません。', 'max_size' => '{field} は、ファイルサイズが大きすぎます。', 'is_image' => '{field} には、画像ファイルを指定してください。', 'mime_in' => '{field} は、有効なMIMEタイプではありません。', 'ext_in' => '{field} は、有効なファイル拡張子ではありません。', 'max_dims' => '{field} は画像ファイルではないか、幅が広すぎるか高すぎます。', ];
設定ファイルの変更
「application/Config/App.php」を以下の通り変更する。
#変更前 public $defaultLocale = 'en'; #変更後 public $defaultLocale = 'ja';
関連記事
-
CodeIgniter4で祝日一覧APIにCURLでリクエストし結果をファイルキャッシュする方法
Codeigniter4.4.4で祝日一覧APIにCURLでリクエストしたい。尚 ...
-
Codeigniter4でMySQLに接続しCRUD操作する方法
Codeigniter4.4.4でMySQLに接続しCRUD操作したい。また、任 ...
-
CodeIgniter3で共通の変数と定数を設定する方法
CodeIgniter3系で共通する配列が入った変数と、定数を設定したかった。以 ...
-
CodeIgniter4でコントローラ実行の前後に指定したイベントを実行する方法
CodeIgniter4で特定の条件の場合は指定したページにリダイレクトさせたい ...
-
CodeIgniter4 & jQueryを用いて同一サイト内でajax通信する方法
CodeIgniter4.4.4 & jQueryを用いて同一サイト内で ...