codegaudi/laravel-feature-flags

laravel-feature-flags

2.1.0 2023-02-04 14:17 UTC

This package is auto-updated.

Last update: 2024-09-04 17:37:33 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

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');

您可以使用 isEnabledisDisabled 方法检查功能是否启用。

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)。请参阅许可文件 了解更多信息。