andangdev / config-cache by andang

Adds the Laravel command `php artisan config:cache` to Lumen
5,433
0
1
Package Data
Maintainer Username: andang
Maintainer Contact: andangdev@gmail.com (Andang Sugiana)
Package Create Date: 2020-09-29
Package Last Update: 2020-09-29
Language: PHP
License: MIT
Last Refreshed: 2024-03-23 03:01:41
Package Statistics
Total Downloads: 5,433
Monthly Downloads: 9
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

lumen-config-cache

Adds the Laravel artisan command config:cache to Lumen.

Once installed you can type php artisan lumen-config:cache in your console to gets all your Lumen configuration files loaded in the cache, which will increase your Lumen app response times.

Installation

This package can be used in Laravel lumen 7 or higher with PHP 7.0 or higher.

You can install the package via composer:

composer require ugiw/lumen-config-cache

Now register the service provider in bootstrap/app.php file:

$app->register(Ugiw\ConfigCache\ServiceProviders\ConfigCacheServiceProvider::class);

If you want to publish automatically the config file, you must install a package like lumen-vendor-publish, which contains a single command that enables you to publish a package config file to the config folder of your Lumen application.

So you can publish the config file like in Laravel:

php artisan vendor:publish --tag="lumen-config-cache"

If you dedice to not install any aditional package, then you can copy the file vendor/gipro/lumen-config-cache/src/config/config-cache.php to your app config folder.

This is the contents of the published config/config-cache.php config file:

return [

    /**
     * The name of the key where the config is stored in cache
     */
    'cache_key' => 'config_cache',

    /**
     * Expiration time for the config in cache
     */
    'cache_expiration_time' => 60*24, // One day

    /**
     * The config files (app, database, queue, etc.) to be cached
     * Add to this array whatever config files you want to load in cache
     */
    'config_files' => [
        'app',
    ],

];

You should enable the use of facades in Lumen uncommenting the following line in your bootstrap/app.php file:

// $app->withFacades();

Usage

You can access your config keys with ConfigCache::get facade method:


use Ugiw\ConfigCache\Facades\ConfigCache;

...

$api_url = ConfigCache::get('app.URL');

Also you can force the cached config to be refreshed with ConfigCache::refresh facade method:


use Ugiw\ConfigCache\Facades\ConfigCache;

...

ConfigCache::refresh();

You can use the artisan command lumen-config:cache to force the cached configuration to be refreshed too.

TIP: Add this command to your deployment script to be sure you have the last config cached after deploy your new app release:

php artisan lumen-config:cache