flagception/flagception-bundle

Feature toggle bundle on steroids.

Installs: 2 127 594

Dependents: 0

Suggesters: 0

Security: 0

Stars: 18

Watchers: 1

Forks: 42

Open Issues: 4

Type:symfony-bundle

4.4.2 2024-01-15 13:28 UTC

README

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

Latest Stable Version Coverage Status Build Status Total Downloads License

Bundle Version (Tag) Support Symfony Branch
<=3 2.7 - 4.4 3.x
>=4 4.4 - 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