У меня есть модель Configuration
с таблицей в базе данных с именем configurations
.
. В ней 3 столбца: id, ключ и значение
Я хочу кэшироватьвсе пары ключ / значение из этой таблицы для лучшей производительности и меньшего количества транзакций базы данных.
Что я сделал до сих пор: Я создал Provider
с именем ConfigurationsServiceProvider
иНиже приведен код метода register()
:
public function register()
{
$this->app->singleton('configurations', function ($app) {
return $app['cache']->remember('configurations', 60, function () {
return Configuration::pluck('key', 'value')->toArray();
});
});
}
Я также зарегистрировал провайдера в config/app.php
.
Теперь я хочу добиться следующего:
- Доступ к этим парам ключ / значение конфигурации по всему миру путем вызова метода, например
configurations('key')
- Данные конфигурации должны кэшироваться навсегда для всех пользователей. Его следует кэшировать только тогда, когда пользователь вставляет / обновляет любую запись ключа / значения в таблице базы данных
- Не важно, но было бы очень здорово, если бы я мог каким-то образом объединить и получить доступ к данным
configurations
с помощью глобальной платформы Laravel. config
method.
Также, пожалуйста, предложите, если есть какой-нибудь лучший способ, кроме .env
, для сохранения данных динамической конфигурации для приложения из пользовательского интерфейса.