Ordered by personal preference, while thinking about using them for https://github.com/wmde/FundraisingFrontend
Pro:
- Common checks based on user/environment/date are already defined.
- Provides logging/audit
- Allows caching of feature sets so feature config does not need to be read on every request
- Uses PHP 7
- 100% test coverage
Pro:
- Good code quality + 100% test coverage
- Decision logic for on/off is very extensible, we can write our own
Con:
- Caching not implemented yet
Pro:
- Uses callable strategies for deciding if a feature is active
- Can have multiple strategies for feature, not only on/off
- Callables can be integrated well into the factory
Con:
- Only 10 different "buckets". Might be enough for us, but still makes the configuration harder, since on/off toggled can'T be made independently from each other.
Pro:
- Decision logic for on/off is very extensible, we can write our own
Con:
- Configuration of self-made toggle criteria relies on symfony/options-resolver, which complicates configuration unnceccessarily.
Pro:
- Active development & wide usage
- Easy to understand
Con:
- Provides database storage (which we don't need)
- Group feature does not match our use case
Con:
- Weird array configuration language
- Static functions