U kunt een serviceprovider maken, bijvoorbeeld SettingsServiceProvider
, dat alle instellingen uit de database laadt en vervolgens in de cache plaatst. Vervolgens kan het bij volgende pagina's laden, in de cache opgeslagen instellingswaarden retourneren in plaats van de database te doorzoeken, waar u zich terecht zorgen over zou moeten maken.
Iets eenvoudigs als:
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();
});
});
}
}
Ervan uitgaande dat uw instellingenmodel Setting
wordt genoemd volgens de naamgevingsconventies van Laravel. U kunt dan als volgt toegang krijgen tot de instellingen:
<h1>{{ array_get(app('settings'), 'site.name') }}</h1>
Als u een mooiere manier wilt om toegang te krijgen tot instellingen, kunt u een hulpfunctie maken:
function setting($key)
{
return array_get(app('settings'), $key);
}
Wat het gebruik als volgt zou maken:
<h1>{{ setting('site.name') }}</h1>
Bijna emuleren van de config()
gebruik van de helperfunctie.