treehouselabs / feature-toggle
Feature toggle library
Installs: 1 063
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 10
Forks: 1
Open Issues: 0
Requires
- php: >=7.0
- symfony/http-foundation: ^2.8|^3.0|^4.0
- symfony/options-resolver: ^2.8|^3.0|^4.0
Requires (Dev)
- behat/behat: ~3.0
- phpunit/phpunit: ^5.5
- psr/cache: ^1.0
- symfony/symfony: ^2.8|^3.0|^4.0
This package is not auto-updated.
Last update: 2024-11-09 20:45:19 UTC
README
Simple feature toggle library
Installation
composer require treehouselabs/feature-toggle
Usage
$features = new FeatureToggleCollection(); $features->registerToggle( 'feature-x', new BooleanFeatureToggle(true) ); if ($features->isEnabled('feature-x')) { // perform stuff for feature-x }
Behat context
# behat.yml default: suites: default: contexts: - TreeHouse\FeatureToggle\Bridge\Behat\FeatureToggleContext: cacheItemPool: '@cache_item_pool' #PSR-6 cache item pool
<?php class Feature { private $features; public function __construct(FeatureToggleCollectionInterface $features) { $this->features = $features; } public function indexAction() { if ($this->features->isEnabled('feature-y')) { return 'Enabled!'; } return 'Disabled!'; } } $toggleCollection = new CacheFeatureToggleCollection(); $toggleCollection->setCacheItemPool($psr6CacheItemPool); // Overwrite the FeatureToggleCollection with the CacheFeatureToggleCollection in test env new Feature($toggleCollection);
# feature-y.feature Feature: Feature-Y Scenario: Feature-Y is enabled Given the feature toggle "feature-y" is enabled And I am on the homepage Then I should see "Enabled!" Scenario: Feature-Y is disabled # Given the feature toggle "feature-y" is disabled (default) Given I am on the homepage Then I should see "Disabled!"
Testing
composer test
Security
If you discover any security related issues, please email dev@treehouse.nl instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.