flagception/flagception-bundle

Feature toggle bundle on steroids.

Installs: 429 855

Dependents: 0

Suggesters: 0

Security: 0

Stars: 153

Watchers: 8

Forks: 11

Open Issues: 7

Type:symfony-bundle

4.0.2 2020-03-03 15:55 UTC

This package is auto-updated.

Last update: 2020-10-26 14:48:33 UTC


README

Feature toggle bundle on steroids! Flagception is a simple and powerful feature toggle system for php. This bundle integrates the Flagception PHP Libary for symfony 2.7 to 5.* (and php 5.6 to php7.*).

Latest Stable Version Coverage Status Build Status Total Downloads License

SensioLabsInsight

Bundle Version (Tag) Support Symfony Branch
<=3 2.7 - 4.4 3.x
>=4 5.0 - current master
$ composer require flagception/flagception-bundle

Documentation

Quick example

Set some feature in your config (or use your own activator for fetching features from wherever you want) ...

flagception:

    # Your Features (optional you left it empty)
    features:
    
        # Feature name as key
        feature_123:
            # Default flag if inactive or active (default: false)
            default: true
            
        # Feature state from an environment variable
        feature_abc:
            env: FEATURE_ENV_ABC
            
        # Feature with constraint (active if user id is 12 OR it is between 8 am and 6 pm)
        feature_def:
            constraint: 'user_id == 12 or (date("H") > 8 and date("H") < 18)'
                    
        # All togther (chain)
        feature_def:
            default: false
            env: FEATURE_ENV_ABC
            constraint: 'user_id == 12 or (date("H") > 8 and date("H") < 18)'

... and use it in controller, services or twig:

{% if feature('feature_123') %}
    {# Execute if feature is active ... #}
{% endif %}

See usage documentation for detailed examples.

Profiler

This bundle ships a profiler tab, where you can see how often a feature was requested, which results it returns (active or inactive) and the given context.

Image of Profiler

Credits

Profiler icon from https://github.com/ionic-team/ionicons