【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から変更できて便利ですが、意図せず上書きしないよう注意が必要です。

プチ検証でした。本日はこの辺で