承接 yomafleet/laravel-feature-flag 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yomafleet/laravel-feature-flag

最新稳定版本:v1.0.7

Composer 安装命令:

composer require yomafleet/laravel-feature-flag

包简介

Internal feature flag tool based on Unleash

README 文档

README

Internal feature flag client for Unleash & Flipt

Config

<?php

return [
    'default' => env('FEATURE_FLAG_CONNECTION', 'disabled-toggler'),

    'providers' => [
        'flipt' => [
            'namespace' => env('FLIPT_NAMESPACE', 'default'),
            'host' => env('FLIPT_HOST'),
            'token' => env('FLIPT_TOKEN'),
        ],
        'unleash' => [
            'name' => env('UNLEASH_NAME', 'default'),
            'url' => env('UNLEASH_URL'),
            'id' => env('UNLEASH_ID'),
            'token' => env('UNLEASH_TOKEN'),
        ],
        'disabled-toggler' => [
            'optimistic' => env('DISABLED_TOGGLER_OPTIMISTIC', true)
        ]
    ],

    'disable' => env('FEATURE_FLAG_DISABLE', false),
];

Env

# Feature Flag
FEATURE_FLAG_CONNECTION=unleash
FEATURE_FLAG_DISABLE=false

# Unleash Client
UNLEASH_NAME=default
UNLEASH_URL=http://localhost:4242/api/
UNLEASH_ID=EXAMPLE_ID
UNLEASH_TOKEN=EXAMPLE_TOKEN

# Disabled Toggler Client
DISABLED_TOGGLER_OPTIMISTIC=true

# Flipt Client
FLIPT_NAMESPACE=default
FLIPT_HOST=http://localhost:8080
FLIPT_TOKEN=

Install

composer require yomafleet/payment-provider

Usage

Implements the UserContract in User model

<?php

namespace App\Models;

use Yomafleet\FeatureFlag\UserContract;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements UserContract
{
    /**
     * Get ID of the user.
     *
     * @return string|integer
     */
    public function id(): string|int
    {
        return $this->id;
    }

    /**
     * Get all roles of the user.
     *
     * @return array
     */
    public function roles(): array
    {
        return $this->roles->toArray();
    }

    /**
     * Check if the user has given role.
     *
     * @param string $name
     * @return boolean
     */
    public function hasRole(string $name): bool
    {
        return $this->hasRole($name);
    }
}

And check the feature flag with Facade

<?php

use Yomafleet\FeatureFlag\Facade as Flag;

//...
//...
//...
$isEnabled = Flag::enabled('someflag-check');

Can use blade directive as well

<?php

@feature('something')
    <div>Something</div>
@else
    <div>Nothing</div>
@endfeature

Also, can use in route

<?php

use Illuminate\Support\Facades\Route;

Route::get('example', [\Example\Controller::class, 'index'])->feature('something:admin')

统计信息

  • 总下载量: 2.23k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-03-20