【Laravel】.envファイルにコメントを入れるときと空白や#(シャープ)を含む文字列を設定する場合の注意点




Laravelの.envファイルにコメントを書きたい場合、および#(シャープ)や空白を含む文字列を設定したい場合の注意点をまとめます。

コメントについて

コメントは1行のうち、#(シャープ)以降がコメントとなります。
#(シャープ)の後ろであれば空白が入っていてもエラーにはなりません。
設定値の後ろにコメントを書く場合、設定値とコメントの#(シャープ)の間には半角空白が必要です。
半角空白を設定しないと設定値の#として扱われるため、以下のエラーが発生します。

The environment file is invalid: Dotenv values containing spaces must be surrounded by quotes.root

コメントのサンプルです。

DB_CONNECTION=mysql
DB_HOST=db # このコメントはOK
DB_PORT=3306#このコメントはNG、設定値の中の文字列として認識される

設定値に空白を設定する場合

設定値に空白を設定する場合、シングルクォーテーションかダブルクォーテーションでくくる必要があります。
くくらない場合、コメントと同じく以下のエラーが発生します。

The environment file is invalid: Dotenv values containing spaces must be surrounded by quotes.root

#(シャープ)については設定値に#(シャープ)を設定する場合、前が空白でなければシングルクォーテーションやダブルクォーテーションでくくらなくても認識されます。
#(シャープ)の前が空白の文字列を設定する場合はシングルクォーテーションやダブルクォーテーションでくくる必要があります。
くくらないとコメントとして認識されるためです。

APP_NAME='Laravel TEST' # この行はOK
APP_NAME="Laravel TEST" # この行もOK
APP_NAME=Laravel TEST # この行はNG

APP_NAME="Laravel #TEST" # この行はOK
APP_NAME=Laravel #TEST # この行もOK、ただしAPP_NAMEの設定値はLaravel。#TESTはコメントとして扱われる。