METRO-Markets / feature-flag-bundle

A Symfony Feature Flag Bundle which easily allows you to configure and use your favorite feature flag provider.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Scrutinizer Code Quality Code Coverage License: MIT

Metro Markets FF

Metro Markets FF is a Feature Flag Symfony Bundle. It easily allows you to configure and use your favorite feature flag provider.

Installation

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

$ composer require metro-markets/feature-flag-bundle

Step 2: Enable the Bundle

(Please skip this step if you are using Symfony Flex) Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    MetroMarkets\FFBundle\MetroMarketsFeatureFlagBundle::class => ['all' => true],
];

Step 3: Create the configuration

# config/packages/metro_markets_feature_flag.yaml

metro_markets_feature_flag:
  provider: 'configcat'
  configcat:
    sdk_key: 'PKDVCLf-Hq-h-kCzMp-L7Q/HhOWfwVtZ0mb30i9wi17GQ' # Get it from ConfigCat Dashboard.
    cache:
      driver: 'cache.app'
      ttl: 60
    logger: 'monolog.logger'

How to use it

After the installation is done you can simply inject the service anywhere and use it as follows:

use MetroMarkets\FFBundle\FeatureFlagService;

class AnyService
{
    /** @var FeatureFlagService */
    private $featureFlagService;

    public function __construct(FeatureFlagService $featureFlagService)
    {
        $this->featureFlagService = $featureFlagService;
    }

    protected function someMethod()
    {
        $isEnabled = $this->featureFlagService->isEnabled('isMyAwesomeFeatureEnabled');
        
        if ($isEnabled){
            doTheNewStuff();
        } else{
            keepTheOld();
        }
    }   
}

About providers

Currently, the only supported provider is configCat. Please, refer to the official PHP SDK for more details.

License

This package is open-sourced software licensed under the MIT license. Please for more info refer to the license

About

A Symfony Feature Flag Bundle which easily allows you to configure and use your favorite feature flag provider.

License:MIT License


Languages

Language:PHP 100.0%