🌿
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