Download the PHP package ajgarlag/feature-flag-bundle without Composer
On this page you can find all versions of the php package ajgarlag/feature-flag-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ajgarlag/feature-flag-bundle
More information about ajgarlag/feature-flag-bundle
Files in ajgarlag/feature-flag-bundle
Package feature-flag-bundle
Short Description Provides a feature flag mechanism
License MIT
Homepage https://github.com/ajgarlag/feature-flag-bundle
Informations about the package feature-flag-bundle
FeatureFlag Bundle
The FeatureFlag Bundle allows you to split the code execution flow by enabling features depending on context.
It provides a service that checks if a feature is enabled. Each feature is defined by a callable function that returns a value. The feature is enabled if the value matches the expected one (mostly a boolean but not limited to).
This bundle code has been borrowed from https://github.com/symfony/symfony/pull/53213.
[!IMPORTANT]
The purpose of this bundle is to allow you to test the code proposed in the PR.
π Getting Started
Follow these steps to install and use the bundle in your Symfony application.
Step 1: Download the bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
Step 2: Enable the bundle (for non-Flex applications)
Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:
β¨ Declaring features with attributes
You can declare features using the #[AsFeature] attribute. This allows you to autoconfigure your features as services.
On a class
You can use the attribute on an invokable class:
The feature will be named xmas. If you don't provide a name, the FQCN of the class will be used.
You can also use the method property of the attribute to specify a method to call on the service.
On a method
You can also use the attribute on a method of a service. The method must be public.
πΊοΈ Routing integration
The bundle provides two functions to use in route conditions: feature_is_enabled and feature_get_value.
You can use them to enable or disable routes based on features.
You can also use feature_get_value to check for a specific value.
π§© Providers
Providers are responsible for returning the feature callables. You can create your own provider by implementing the
ProviderInterface.
Any service that implements ProviderInterface is automatically registered as a provider. The bundle comes with a
ChainProvider that allows you to combine multiple providers. The first provider that returns a feature wins.
The ProviderInterface
To create your own provider, you need to implement the ProviderInterface.
The get method must return a callable if the provider has the feature, or null otherwise.
Doctrine example
Gitlab example
First, declare a service to interact with the [Unleash](https://www.getunleash.io/) API.Priority
You can control the order of the providers in the chain using the priority attribute on the
ajgarlag.feature_flag.provider tag.
You can use the #[AutoconfigureTag] attribute to set the priority of your provider.
Providers with a higher priority will be checked first.
π¨ Twig extension
The bundle provides two functions to use in Twig templates: feature_is_enabled and feature_get_value.