Я пытаюсь создать глобального помощника для хранения настроек сайта в моем приложении Laravel. Это значит, что мне нужен помощник для установки настроек из контроллера и доступа к этому объекту настроек из любой точки мира с использованием того же помощника. Мне не нужно хранить эти настройки в базе данных или в файлах. Вот почему мне нужны такие функции.
Что сделано следующим образом,
- Создайте класс в
app/Helpers
каталоге с именем SettingsHelper
и автоматически загрузите каталог.
namespace App\Helpers;
class SettingsHelper{
protected $vars;
public function all(){
return $this->vars;
}
public function get($key, $default = null){
if (is_array($this->vars) && array_key_exists($key, $this->vars)) {
return $this->vars[$key];
}
return $default;
}
public function put($key, $value){
return $this->vars[$key] =$value;
}
}
- Создать вспомогательную функцию для разрешения класса, если она еще не решена
if ( ! function_exists('settings')) {
function settings(){
if (app('\App\Helpers\SettingsHelper')) {
return app('\App\Helpers\SettingsHelper');
}
return app()->make('\App\Helpers\SettingsHelper');
}
}
- Установить и получить настройки с помощью помощника
settings()->put('test', 'test2');
dd(settings()->all());
Но null
возвращается. Я попытался сбросить settings()->put('test', 'test2')
, и он вернул переданное значение test2
.
Это правильный подход для этого?