flagception/flagception-bundle

Feature toggle bundle on steroids.

Installs: 2 335 470

Dependents: 0

Suggesters: 0

Security: 0

Stars: 18

Watchers: 1

Forks: 42

Open Issues: 3

Type:symfony-bundle

5.0.0 2024-07-04 08:17 UTC

README

Flagception

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
<=3 2.7 - 4.4
>=4 4.4 - 7.4
>=5 4.4 - current
$ 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