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.*).
Bundle Version (Tag) | Support Symfony | Branch |
---|---|---|
<=3 | 2.7 - 4.4 | 3.x |
>=4 | 4.4 - current | master |
$ composer require flagception/flagception-bundle
- Installation
- Upgrade from 2.x
- Upgrade from 3.x
- Usage
- Twig flags
- Route flags
- Annotation flags
- Constraints
- Environment variables
- Cookies
- Database
- Activators
- Profiler
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.
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.
Profiler icon from https://github.com/ionic-team/ionicons