Laravelのカスタムのconfigで環境に依存しない固定値やenum値を書いているコードを見たことがあるが、標準で用意されていないカスタムの値に関しては環境依存の値にすべきである。
理由としては
config()
値の型解釈や補完はプラグインに依存する- config/*.php に値があるため、app/ 配下のコードと距離が遠くなりコードの保守性が下がる
の2点。
ということで、固定値であれば普通にその値に従属すべきモデルクラスのconstに定義し、enum値であればPHPのEnumを使えば良い。
逆に環境依存の値、例えば環境変数の値や環境に依存する値(APP_ENVに間接的に依存する値)は config で管理する。app/ のアプリケーションコードに env()
を直接使うのはNGで config()
を使うのが推奨されているというのが理由。