orchestra/config

Configuration Component for Laravel and Orchestra Platform


README

Config Component is a configuration with environment based support for Laravel 5 and above. The component is actually based from Laravel 4 configuration.

Latest Stable Version Total Downloads Latest Unstable Version License

Table of Content

Version Compatibility

Laravel Config
5.5.x 3.5.x
5.6.x. 3.6.x
5.7.x. 3.7.x
5.8.x 3.8.x
6.x 4.x
7.x 5.x

Installation

To install through composer, run the following command from terminal:

composer require "orchestra/config"

Configuration

To swap Laravel 5 default configuration, all you need to do is add the following code to bootstrap/app.php:

$app->singleton(
    Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
    Orchestra\Config\Bootstrap\LoadConfiguration::class
);

Configuration Caching Support

Config Component also bring an enhanced php artisan config:cache support to speed up configuration loading, some features include:

  • Caching packages/namespaced config instead of just application config directory.
  • Enforcing lazy loaded packages config by including list of packages config key in compile.config.

In order to do this you need to replace Illuminate\Foundation\Provider\ArtisanServiceProvider with a new App\Providers\ArtisanServiceProvider:

<?php namespace App\Providers;

use Orchestra\Config\Console\ConfigCacheCommand;
use Illuminate\Foundation\Providers\ArtisanServiceProvider as ServiceProvider;

class ArtisanServiceProvider extends ServiceProvider
{
    /**
     * Register the command.
     *
     * @return void
     */
    protected function registerConfigCacheCommand()
    {
        $this->app->singleton('command.config.cache', function ($app) {
            return new ConfigCacheCommand($app['files']);
        });
    }
}

Don't forget to update your config/app.php to replaces Illuminate\Foundation\Provider\ArtisanServiceProvider with App\Providers\ArtisanServiceProvider.

Caching lazy loaded packages file

In order to force certain packages to be included in config caching, you can specify either the relative key of desired packages in your config/compile.php file:

<?php

return [

    // ...

    'config' => [
        'orchestra/foundation::config',  // if package config is group under "config/config.php"
        'orchestra/foundation::roles',   // Using one of the key available in "config/config.php"
        'orchestra/html::form',          // When package contain "config/form.php"
    ],

];