Download the PHP package trompette/feature-toggles without Composer
On this page you can find all versions of the php package trompette/feature-toggles. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download trompette/feature-toggles
More information about trompette/feature-toggles
Files in trompette/feature-toggles
Package feature-toggles
Short Description Feature toggle infrastructure enabling continuous deployment
License MIT
Informations about the package feature-toggles
trompette/feature-toggles
This PHP library implements a feature toggle infrastructure.
Using trompette/feature-toggles
library can help a team to deliver new
features to users iteratively and safely, in other words: it enables continuous
deployment.
For more information on the topic, see Feature Toggles (aka Feature Flags) on MartinFowler.com.
Installation
The trompette/feature-toggles
library is distributed on
Packagist.
It can be added as a project dependency with the following command:
Standalone usage
When working on a new version of a page, deploying gradually the new version can bring a lot of confidence to a team.
But it also brings more work, as the team needs to:
- keep the code implementing the current version,
- add the code implementing the new version,
- and consistently enable the new version for some users.
With trompette/feature-toggles
library, enabling the new version is done by
asking the toggle router if the current user has a
feature:
Feature registry
Before using the toggle router, new_page_version
feature has to be registered:
Toggling strategies
When defining a feature, a toggling strategy has to be referenced to specify the algorithm deciding if a target has a feature.
Implemented strategies are:
- feature is enabled for all targets or disabled for all targets, see
OnOff
class, - feature is enabled for whitelisted targets only, see
Whitelist
class, - feature is enabled for a percentage of all targets, see
Percentage
class.
And strategies can be combined with boolean operators, like so:
onoff and whitelist
, onoff or whitelist or percentage
, etc.
Toggle router
Now that the feature registry is configured, the toggle router can be created:
Strategies are injected as an array indexed with names: these are the references that should be used when registering features.
Feature configuration
The toggle router can be used to configure a feature for a given strategy:
Configuration changes are persisted by calling the associated method on the strategy instance.
All Doctrine DBAL configuration repositories can migrate a schema, since they
all implement the SchemaMigrator
interface:
Usage with Symfony
All previous code is optional when using Symfony: everything is glued together
by the FeatureTogglesBundle
class.
Registering the bundle in
config/bundles.php
is needed to benefit from the Symfony integration:
Bundle configuration
The bundle can be configured as
described by config:dump-reference
:
For technical details, see
FeatureTogglesConfiguration
class.
Container services
There is only one service declared as public: the toggle
router with Trompette\FeatureToggles\ToggleRouter
or Trompette\FeatureToggles\ToggleRouterInterface
as identifier.
There are also useful console commands defined as services and tagged with
console.command
:
More information about the commands can be found in their help messages.
For technical details, see
FeatureTogglesExtension
class.
License
The trompette/feature-toggles
library is released under the MIT License.
See the LICENSE file for more details.
Acknowledgments
The trompette/feature-toggles
library is inspired by a practice and a tool
used by the Food Assembly development team.
The team discovered the practice with the article Web Experimentation with New Visitors on Etsy's Engineering Blog.
All versions of feature-toggles with dependencies
beberlei/assert Version >=3.2
doctrine/dbal Version >=3.8
psr/log Version >=1.1
symfony/config Version >=5.4
symfony/console Version >=5.4
symfony/expression-language Version >=5.4