【Laravel-admin】Laravel-admin拡張機能 configの検証
概要
今回は、前回Laravel-adminへ追加したconfig拡張機能のプチ検証です。
laravelでは、config()関数により、設定ファイルの値を取得することができます。
前回追加したconfig拡張機能でもconfig()関数を使ってデータベースの値を取得することができます。
設定ファイルとデータベースのKeyを同じにしてしまった場合どうなるの?
という検証です。
「【Laravel-admin】Laravel-admin便利な拡張機能(Extension)たち紹介6」
Laravel-Admin構築までの環境構築は、以下の記事を参考にしてください。
「【Laravel】MacにLaravelインストールしてみた(Virtalbox + Vagrant + homestead) 」
「【Laravel-admin】Laravel-adminインストールしてみた」
環境
MacBook Air (Retina, 13-inch, 2020)
メモリ: 16 GB
macOS: Big Sur バージョン 11.6.1
仮想環境
VirtualBox 6.1.28
Vagrant 2.2.19
Laravel/Homestead 11.5.0 ( Ubuntu 20.04.3 LTS, PHP 8.0.11 )
Laravel Framework 8.70.2
mysql Ver 8.0.26-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
encore/laravel-admin ^1.8
検証
まず初めにconfingファイルは、以下のディレクトリに格納されています。
ls -l config
app.phpの"name"を取得する場合は、config('app.name') 関数にて"Laravel“取得できる。
*.envにAPP_NAMEがある場合は、そちらが取得されます。
admin.phpの"name"を取得する場合は、config('admin.name') 関数にて"Laravel-admin“取得できる。
階層がある値も、config('admin.extensions.composer-viewer.which-composer')このように記載することで"/usr/local/bin/composer“を取得できる。
config('{FILE_NAME].{階層1}.{階層2}’) のようなイメージで取得可能となっている。
独自に追加したいconstとかその他設定ファイルも同様に記載することでconfig()関数で取得可能。
前回、追加したconfig拡張機能は、というと管理画面から以下のように登録することで設定できます。
値は、admin_configというテーブルに格納されます。
config('name')と記載することで"break time“を取得できる。
さて、本題です。
config追加機能で、もし、config/*.phpの中にあるKey名と同じにしてしまった場合どうなるのか?
例えば、admin.phpに記載している"name"のKeyと同じように"admin.name“とした場合どうなるのでしょうか
早速、Database側に"admin.name“を登録してみました。
するとどうでしょう。
config('admin.name') を実行すると"break time“取得できました。
config拡張機能側が上書きしてしまったことになります。
config拡張機能側で意図的に上書きしたい場合は、Laravel-adminから変更できて便利ですが、意図せず上書きしないよう注意が必要です。
プチ検証でした。本日はこの辺で