worksome / feature-flags
A package to manage feature flags in your application
Fund package maintenance!
worksome
Installs: 275 828
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 10
Forks: 0
Open Issues: 0
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.4
- illuminate/contracts: ^9.0|^10.0
- launchdarkly/server-sdk: ^4.2
- spatie/laravel-package-tools: ^1.12.1
Requires (Dev)
- nunomaduro/collision: ^6.3.1
- orchestra/testbench: ^7.6|^8.0
- pestphp/pest: 1.22.2
- pestphp/pest-plugin-laravel: 1.4.0
- pestphp/pest-plugin-parallel: 1.2.0
- worksome/coding-style: ^2.3
README
A package to manage feature flags in your application. Currently supporting these providers:
Installation
You can install the package via composer:
composer require worksome/feature-flags
You can publish the config file with:
php artisan vendor:publish --tag="feature-flags_without_prefix-config"
This is the contents of the published config file:
declare(strict_types=1); use Worksome\FeatureFlags\ModelFeatureFlagConvertor; // config for Worksome/FeatureFlags return [ 'default' => env('FEATURE_FLAGS_PROVIDER', 'launchdarkly'), 'convertor' => ModelFeatureFlagConvertor::class, 'providers' => [ 'launchdarkly' => [ 'key' => env('LAUNCHDARKLY_SDK_KEY'), 'options' => [ /** * https://docs.launchdarkly.com/sdk/features/offline-mode */ 'offline' => env('LAUNCHDARKLY_OFFLINE', false) ] ] ], /** * Overrides all feature flags directly without hitting the provider. * This is particularly useful for running things in the CI, * e.g. Cypress tests. */ 'override-all' => env('FEATURE_FLAGS_OVERRIDE_ALL'), /** * Override flags. If a feature flag is set inside an override, * it will be used instead of the flag set in the provider. * * Usage: ['feature-flag-key' => true] */ 'overrides' => [], ];
Usage in Blade
@feature('feature-flag') This is content under a feature flag. @endfeature
Changelog
Please see the Releases for more information on what has changed recently.
Testing
We pride ourselves on a thorough test suite and strict static analysis. You can run all of our checks via a composer script:
composer test
To make it incredibly easy to contribute, we also provide a docker-compose file that will spin up a container with all the necessary dependencies installed. Assuming you have docker installed, just run:
docker-compose run --rm composer install # Only needed the first time docker-compose run --rm composer test # Run tests and static analysis
Support for XDebug is baked into the Docker image, you just need to configure the XDEBUG_MODE
environment variable:
docker-compose run --rm -e XDEBUG_MODE=debug php
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.