我有一个Configuration
模型,其表位于数据库configurations
中。
它有3列: id,键和值
我想从该表中缓存所有键/值对,以提高性能并减少数据库事务。
我到目前为止所做的事情:
我创建了一个名为Provider
的{{1}},下面是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
数据,那将非常棒。还请提出除config
之外,还有没有其他更好的方法可以从用户界面存储动态配置数据供应用程序使用。
答案 0 :(得分:0)
在这种情况下,我要做的是通过composer加载的辅助函数
让我们说app/Helpers.php
<?php
function configurations($key)
{
return \Cache::rememberForever("config-$key", function () use ($key) {
return Configuration::where('key', $key)->first()->value;
});
}
并自动将其加载到composer.json
"autoload": {
"files": [
"app/Helpers.php"
]
},
但是当键值更改时,您仍然必须手动清除缓存
希望这会有所帮助