Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.
Open a command console, enter your project directory and execute:
composer require sonsofphp/feature-toggle-bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require sonsofphp/feature-toggle-bundle
Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php
file of your project:
// config/bundles.php
return [
// ...
SonsOfPHP\Bundle\FeatureToggleBundle\SonsOfPHPFeatureToggleBundle::class => ['all' => true],
];
# config/packages/sons_of_php_feature_toggle.yaml
sons_of_php_feature_toggle:
features:
# You can create as many features as you want
enabled_key:
# Features can be enabled, disabled, or use a custom toggle
toggle: enabled
disabled_key:
toggle: disabled
custom_toggle_key:
toggle: app.toggle.admin_users
You can debug your features by running the debug:features
command.
php bin/console debug:features
This will give you a list of features and the toggles they are using.
You can check to see if the feature is enabled in twig templates by using the is_feature_enabled
function.
{% raw %}
{% if is_feature_enabled('enabled_key') %}
Feature "enabled_key" is enabled
{% else %}
Feature "enabled_key" is disabled
{% endif %}
{% endraw %}
<?php
use SonsOfPHP\Contract\FeatureToggle\FeatureToggleProviderInterface;
class ExampleService
{
public function __construct(
private FeatureToggleProviderInterface $featureToggleProvider,
) {}
public function doSomething()
{
if ($featureToggleProvider->get('enabled_key')->isEnabled()) {
// "enabled_key" is enabled
}
}
}
- Documentation
- Contributing
- Report Issues and Submit Pull Requests in the Mother Repository
- Get Help & Support using Discussions