SettingsServiceProvider
などのサービスプロバイダーを作成できます 、データベースからすべての設定をロードしてからキャッシュします。その後のページの読み込み時に、データベースにクエリを実行するのではなく、キャッシュされた設定値を返す可能性があります。これは当然のことです。
簡単なこと:
class SettingsServiceProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton('settings', function ($app) {
return $app['cache']->remember('site.settings', 60, function () {
return Setting::pluck('value', 'key')->toArray();
});
});
}
}
設定モデルがSetting
と呼ばれると仮定します Laravelの命名規則に従って。その後、次のような設定にアクセスできます:
<h1>{{ array_get(app('settings'), 'site.name') }}</h1>
設定にアクセスするためのよりきれいな方法が必要な場合は、ヘルパー関数を作成できます:
function setting($key)
{
return array_get(app('settings'), $key);
}
これは次のように使用されます:
<h1>{{ setting('site.name') }}</h1>
config()
をほぼエミュレートします ヘルパー関数の使用法。