bitnetic / maturity
A laravel-based software maturity feature flags configuration package
Installs: 511
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:package
Requires
- laravel/framework: 5.5.*|5.6.*|5.7.*
This package is not auto-updated.
Last update: 2024-09-28 10:11:13 UTC
README
Laravel ships with .env files to give you great flexibility over the configuration and behaviour of your application depending on the environment it is running in.
However, specific environments are a more technical aspect, and often this is not the driver for when a functionality should be available or not. Be it local, docker or test - there are a mixture of situations where you would probably not want your software to access a critical 3rd party API, apply strict business rules, store certain data or behave a simpler way than usual.
Using a maturity-based approach, you can bundle that behaviour into a handful of levels and and apply it to the different technical environments you are going to set up.
How to install it
Just pull in the package via composer:
$ composer install bitnetic/maturity "0.1.*"
The maturity package comes with a config file named config/maturity.php. This file is deployed to the central laravel configuration directory using the vendor:publish command:
$ php artisan vendor:publish --tag=config
How to use it
Insert your desired feature flags:
$ vi config/maturity.php
Set your planned environment's maturities, e.g.:
$ echo "MATURITY=DEV" >> .env
$ echo "MATURITY=PROD" >> .env.aws
Check and use feature flags within your business code, e.g.:
if (Maturity::has('PROCESS_CREDIT_CARDS')) {
// ...
}
or in your DatabaseSeeder.php:
public function run()
{
$this->call(\Acme\Cars\PlateRuleSeeder::class);
if (Maturity::has('SEED_DEMO_DATA')) {
// ...
}
}