🌍
Laravel9でresources/langディレクトリを移動しないで使えるか検証してみた
Laravel9からresources/langディレクトリ
はrootディレクトリ
に移動しました。
resources/lang
↓
resources
lang
そこで、Laravel8からLaravel9にバージョンを上げる際に、resources/langディレクトリ
を移動しないで使えるか検証してみたいと思います。
環境
- PHP v8.1.2
- Laravel v9.1.0
環境はLaravel Sail
で作っています。
検証
検証のため、Laravel8以前の状態にしたいので、rootディレクトリ
にあるlangディレクトリ
は削除し、
resourcesディレクトリ
配下にlaravel8のlangディレクトリ
の内容[1]を持ってきます。
app
bootstrap
config
database
lang <- 削除する
public
resources
lang <- Laravel8の内容を持ってくる
routes
...
tinker
を使って、langの内容を取得してみます。
$ php artisan tinker
Psy Shell v0.11.1 (PHP 8.1.2 — cli) by Justin Hileman
>>> __('auth.failed');
=> "These credentials do not match our records."
>>>
>>> app()->langPath();
=> "/var/www/html/resources/lang"
取得できましたー!
app()->langPath()
を使ってpathを取得してもresources/lang
ディレクトリを取得できていますね。
なぜ大丈夫なのか?
答えばGitHubにあります。
resources
ディレクトリ配下にlang
ディレクトリの有無を事前に判定していました。
このおかげで、langディレクトリ
を移動しないで使えるようになっていますね。
結論
移動しなくても大丈夫!!
ただし、今後のバージョンアップでこの判定も消える可能性があるので、
いずれはrootディレクトリ
に移動した方が良い気はしております。
Discussion