metro-markets/feature-flag-bundle

Metro Markets Symfony Feature flag Bundle for quickly integration with configcat and other providers.

v0.1 2021-07-10 20:37 UTC

This package is auto-updated.

Last update: 2024-04-11 02:49:47 UTC


README

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