全域的 Config::set 和 Config::get 怎麼實作?
1). 当前使用的 Laravel 版本? 10
2). 当前使用的 php 版本?8.2
向各位先進請教,要如何的來實作出 Config::set 和 Config::get 的功能,且如同輔助函式為全域不必每支class作import,謝謝。
以前舊版本laravel 4.x 支援:
獲取一個選項的值
Config::get('app.timezone');
如果選項值不存在,你可以指定一個預設值:
$timezone = Config::get('app.timezone', 'UTC');
設定一個選項的值
Config::set('database.default', 'sqlite');
使用 Config::set 和 Config::get 方法。
後來laravel 5 以後版本改成:
獲取一個選項的值
$value = config('app.timezone');
如果配置值不存在,則檢索默認值...
$value = config('app.timezone', 'Asia/Seoul');
設定一個選項的值
config(['app.timezone' => 'America/Chicago']);
新版本”設定一個選項的值”方法,沒有 Config:set 來的直觀,coding也是不好打字。
习惯就好了,辅助函数已经默认被导入了。但如果涉及到从框架版本4到10的迁移,那工作量确实不小。
新版本 Config::get 还有吧,,,
可以直接使用
查看源码发现
Config
门面仍然存在的,位置:\Illuminate\Support\Facades\Config
,可以继续这么调用:Config
门面所有可用的方法都在类:\Illuminate\Config\Repository
里面0个参数返回Config对象, 1个参数读取值,2个参数设置值