codegaudi / laravel-feature-flags
laravel-feature-flags
2.1.0
2023-02-04 14:17 UTC
Requires
- php: ^8.0 || ^8.1
- illuminate/contracts: ^9.0 || ^10.0
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbench: ^7.0 || ^8.0
- phpunit/phpunit: ^9.3 || ^10.0
README
Laravel-Feature-Flags 是一个旨在为 Laravel 添加简单易用功能标志功能的包。
什么是功能标志?
功能标志是一种在您的应用程序中启用和禁用功能的方式。
例如
- 将您的全新功能推送到生产环境,但在未来的某个时刻再启用它
- 为小部分用户启用新功能
此包允许您定义一个功能并
- 全局启用或禁用它
- 为您的应用程序中的任何类型模型启用或禁用它
安装
您可以通过 composer 安装此包
composer require codegaudi/laravel-feature-flags
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="Codegaudi\LaravelFeatureFlags\LaravelFeatureFlagsServiceProvider" --tag="migrations" php artisan migrate
使用方法
首先,您需要定义一个新的功能。这可以通过使用 Feature
面具来完成。
use Codegaudi\LaravelFeatureFlags\Facades; Feature::add($name = 'my-feature', $isEnabled = true);
您也可以获取底层的 eloquent 模型。
use Codegaudi\LaravelFeatureFlags\Facades; Feature::findByName('my-feature');
您可以使用以下方法启用或禁用它们。
use Codegaudi\LaravelFeatureFlags\Facades; Feature::enable('my-feature'); Feature::disable('my-feature');
您可以使用 isEnabled
和 isDisabled
方法检查功能是否启用。
Feature::isEnabled('my-feature'); Feature::isDisabled('my-feature');
要删除应用程序中的功能,只需调用 remove
方法即可。
Feature::remove('my-feature');
当然,您可以将功能添加到模型中。您需要将 HasFeatures
特性添加到您选择的类中
use Codegaudi\LaravelFeatureFlags\Traits\HasFeatures; class User extends Model { use HasFeatures; }
接下来,使用 enableFeature
方法启用功能。
$user = User::first(); $user->enableFeature(Feature::findByName('my-feature'));
测试
composer test
变更日志
请参阅CHANGELOG 了解最近的变化信息。
贡献
请参阅CONTRIBUTING 了解详细信息。
安全漏洞
请查看我们的安全策略 了解如何报告安全漏洞。
致谢
许可
MIT 许可证 (MIT)。请参阅许可文件 了解更多信息。