Awesome Open Source
Awesome Open Source

env-providers

Laravel EnvProviders

Latest Version on Packagist Total Downloads Software License Build Status StyleCI

A more finetuned way of managing your service providers in Laravel. This package allows you to configure the environment certain service providers and aliases are loaded in.

Installation

Via composer:

$ composer require sven/env-providers

Or add the package to your dependencies in composer.json and run composer update to download the package:

{
    "require": {
        "sven/env-providers": "^3.1"
    }
}

Next, add the ServiceProvider to your providers array in config/app.php:

// config/app.php
'providers' => [
    ...
    Sven\EnvProviders\ServiceProvider::class,
];

Usage

You must publish this package's configuration file for it to work properly. To do so, run the following command:

$ php artisan vendor:publish --provider="Sven\EnvProviders\ServiceProvider"

After that, you should see the file config/providers.php. In the created configuration file you can see 2 pre-defined provider groups that will help you set up what providers and aliases should be loaded when the application is in any of the given environments.

Environments

In the environments array you can define what environments the provider group should respond to. You may use an asterisk (*) to make that group's providers and aliases load regardless of the application's environment.

Note: You can set your application's environment in either config/app.php under env or via your .env file. If you want to manage your .env file via php artisan, you can check out sven/flex-env.

Providers

The providers array is where you can put the providers you want to have loaded in the defined environments. This should be pretty straight forward as it is similar to how you would register service providers in config/app.php.

Aliases

In the aliases array you may define all your aliases (facades). As with the providers, this is the same as how you would register aliases in the default config/app.php configuration file.

Example

[
    'environments' => ['local', 'development', 'dev'],
    'providers' => [
        Sven\ArtisanView\ArtisanViewServiceProvider::class,
        Barryvdh\Debugbar\ServiceProvider::class,
    ],
    'aliases' => [
        'Debugbar' => Barryvdh\Debugbar\Facade::class,
    ],
],

Notice how we're only loading the Debugbar ServiceProvider and facade when our application's environment is either local, development, or dev. This means you can't use the Debugbar facade in your project when the environment doesn't match any of those.

Contributing

All contributions (pull requests, issues and feature requests) are welcome. Make sure to read through the CONTRIBUTING.md first, though. See the contributors page for all contributors.

License

sven/env-providers is licensed under the MIT License (MIT). Please see the license file for more information.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
php (15,954) 
laravel (1,577) 
package (263) 
environment (63) 
environment-variables (57) 
artisan (23) 

Find Open Source By Browsing 7,000 Topics Across 59 Categories

Advertising 📦 10
All Projects
Application Programming Interfaces 📦 124
Applications 📦 192
Artificial Intelligence 📦 78
Blockchain 📦 73
Build Tools 📦 113
Cloud Computing 📦 80
Code Quality 📦 28
Collaboration 📦 32
Command Line Interface 📦 49
Community 📦 83
Companies 📦 60
Compilers 📦 63
Computer Science 📦 80
Configuration Management 📦 42
Content Management 📦 175
Control Flow 📦 213
Data Formats 📦 78
Data Processing 📦 276
Data Storage 📦 135
Economics 📦 64
Frameworks 📦 215
Games 📦 129
Graphics 📦 110
Hardware 📦 152
Integrated Development Environments 📦 49
Learning Resources 📦 166
Legal 📦 29
Libraries 📦 129
Lists Of Projects 📦 22
Machine Learning 📦 347
Mapping 📦 64
Marketing 📦 15
Mathematics 📦 55
Media 📦 239
Messaging 📦 98
Networking 📦 315
Operating Systems 📦 89
Operations 📦 121
Package Managers 📦 55
Programming Languages 📦 245
Runtime Environments 📦 100
Science 📦 42
Security 📦 396
Social Media 📦 27
Software Architecture 📦 72
Software Development 📦 72
Software Performance 📦 58
Software Quality 📦 133
Text Editors 📦 49
Text Processing 📦 136
User Interface 📦 330
User Interface Components 📦 514
Version Control 📦 30
Virtualization 📦 71
Web Browsers 📦 42
Web Servers 📦 26
Web User Interface 📦 210