benrowe / laravel-config
A basic laravel runtime configuration handler that is stored as simple key/values.
Requires
- illuminate/contracts: ^5.2
- illuminate/support: ^5.2
Requires (Dev)
- php: >=5.5.9
- phpunit/phpunit: ^4.0
This package is auto-updated.
Last update: 2024-12-21 20:37:44 UTC
README
A Laravel runtime configuration handler that supports hierarchical configuration, however when stored, the data is flattened to basic key/value pairs (this allows for more possible storage options)
<?php use Benrowe\Laravel\Config\Config; $config = new Config([ 'foo.bar[0]' => 'Hello', 'foo.bar[1]' => 'World', 'foo.key' => 'Value' ]); $foo = $config->get('foo'); // => ['bar' => ['Hello', 'World'], 'key' => 'Value'] $bar = $config->get('foo.bar'); // => ['Hello', 'World']
Features
- Ability to store the configuration data into any persistent data store (file, db, etc).
- Provided Storage Adapters include Db, File, Redis.
- Dot notation syntax for configuration hierarchy.
- Values can be simple strings, or arrays of strings.
- Modifier support. Modifers can be registered to manipulate the value at runtime. (aka storing json, datetimes, booleans, etc).
- ServiceProvider included to configure the component based on the supplied configuration
- Facade support
Installation
Install the library using composer. Add the following to your composer.json
:
{ "require": { "benrowe/laravel-config": "0.1.*" } }
Now run the install
command.
$ composer.phar install
This will provide access to the component via PSR-4. To configure the package as a laravel service, the service provider must be registered with the provided ServiceProvider.
Configuring Laravel
Once the package has been installed via composer, you need to register the service provider. To do this, edit your config/app.php
and add a new option under the providers
key.
Benrowe\Laravel\Config\ServiceProvider::class
Additionally you can register the provided facade.
'RuntimeConfig' => Benrowe\Laravel\Config\Facdes\Config::class,
With the service provider registered, this will give access to the config component, however it is not configured to persist any changes you make to the config. To do this, you need to publish the provided config file.
php artisan vendor:publish --provider="Benrowe\Laravel\Config\ServiceProvider" --tag="config"
This will publish a config.php
file into your config
directory. At this point you will need to edit the file and setup how you want to persist your configuration.
Additionally if you plan to store your configuration in a database (such as mysql, etc) you will need to publish the migration which stores the config schema
php artisan vendor:publish --provider="Benrowe\Laravel\Config\ServiceProvider" --tag="migrations"