amirhf1/feature-flags
最新稳定版本:v1.0.0
Composer 安装命令:
composer require amirhf1/feature-flags
包简介
This package provides a simple and flexible feature flag system for Laravel applications. It allows developers to enable or disable features dynamically, roll out features to a percentage of users, or restrict features to specific users.
README 文档
README
This package provides a simple and flexible feature flag system for Laravel applications. It allows developers to dynamically enable or disable features, roll out features to a percentage of users, or restrict features to specific users.
Features
- Toggle Features: Enable or disable features dynamically.
- Percentage Rollout: Roll out features to a percentage of users.
- User-Based Rollout: Enable features only for specific users.
- Database-Backed Flags: Store feature flags in the database.
- Config-Based Flags: Define feature flags directly in the Laravel config file.
- Command-Line Interface (CLI): Enable, disable, or list feature flags from the terminal.
Installation
To install the package, run the following command:
composer require amirhf1/feature-flags
Once installed, you need to register the service provider in your Laravel application. Add the following line to the providers array in config/app.php:
Amirhf1\FeatureFlags\Providers\FeatureFlagsServiceProvider::class,
Configuration
The package comes with a default configuration file. To publish the config file to your application, run:
php artisan vendor:publish --provider="Amirhf1\FeatureFlags\Providers\FeatureFlagsServiceProvider" --tag="config"
This will create the config/feature-flags.php file, where you can define and manage your feature flags.
Example of a feature flag in config/feature-flags.php:
return [ 'flags' => [ 'new_feature' => [ 'enabled' => true, 'percentage' => 50, // Enable for 50% of users 'users' => [1, 2, 3], // Enable for specific user IDs ], ], ];
Database Migrations
To store feature flags in the database, you need to run the migration command:
php artisan migrate
This will create the feature_flags table in your database.
To create the migration file, run:
php artisan vendor:publish --provider="Amirhf1\FeatureFlags\Providers\FeatureFlagsServiceProvider" --tag="migrations"
This will copy the migration file to your database/migrations folder.
Usage
Checking if a Feature is Enabled
You can check if a feature is enabled using the FeatureFlags class or the helper function.
use Amirhf1\FeatureFlags\Facades\FeatureFlags; if (FeatureFlags::isEnabled('new_feature')) { // The feature is enabled, perform the feature-specific logic }
Or using the helper function:
if (feature_enabled('new_feature')) { // The feature is enabled, perform the feature-specific logic }
Enabling and Disabling Features
You can enable or disable features programmatically or via the command line.
Enable a Feature:
FeatureFlags::enable('new_feature');
Disable a Feature:
FeatureFlags::disable('new_feature');
Command-Line Interface (CLI)
The package provides several Artisan commands to interact with feature flags.
-
List all feature flags:
php artisan feature:list
-
Enable a feature flag:
php artisan feature:enable {feature_name} -
Disable a feature flag:
php artisan feature:disable {feature_name}
Tests
To run the tests, you need to set up PHPUnit. Then, you can run the tests using:
php artisan test
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-11