ocus/laravel-launchdarkly

laravel的launchdarkly/server-sdk包的包装。

2.1.0 2023-11-13 11:09 UTC

This package is auto-updated.

Last update: 2024-09-14 17:26:42 UTC


README

pipeline status coverage report

此包为Laravel生态系统中的LaunchDarkly PHP SDK提供支持,便于框架使用。它包括门面,可以在您的代码中使用。还包括内存模拟,以帮助您进行测试。

安装

您可以通过composer安装此包

composer require ocus/laravel-launchdarkly

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Ocus\LaravelLaunchDarkly\LaravelLaunchDarklyServiceProvider" --tag="launchdarkly-config"

您可以在.env文件中添加LaunchDarkly SDK密钥

LAUNCH_DARKLY_SDK_KEY="sdk-<your-sdk-key>"

使用方法

首先,您需要在您想用作LaunchDarkly用户的模型中实现Ocus\LaravelLaunchDarkly\Contracts\IsLaunchDarklyUser接口。

/**
 * @return LDUser
 *
 * @see \LaunchDarkly\LDUserBuilder
 * @link https://docs.launchdarkly.com/sdk/features/user-config#php
 */
public function getLaunchDarklyUserAttribute(): \LaunchDarkly\LDUser
{
    return (new \LaunchDarkly\LDUserBuilder($this->getKey()))
        ->secondary(self::class)
        ->email($this->email)
        ->name($this->name)
        ->build();
}

在代码中

use Ocus\LaravelLaunchDarkly\Facades\LaunchDarkly;

// Will return what you setup on your LaunchDarkly dashboard
LaunchDarkly::variation('your.flag.key', $user->launch_darkly_user);

在路由中

您可以在路由定义中使用launch-darkly中间件

Route::middleware('launch-darkly:my-key,my-value')->get('/my-route', ...);

支持所有值类型,除了json。

在测试中

use Ocus\LaravelLaunchDarkly\Facades\LaunchDarkly;

// Fake the LaunchDarkly feature requester with a in memory one
LaunchDarkly::fake();

// Add a value for a given flag key
LaunchDarkly::addFlagValue('your.flag.key', true);

// Will return true
LaunchDarkly::variation('your.flag.key', $user->launch_darkly_user);

测试

composer test

许可证

Apache许可证(Apache 2.0)。请参阅许可证文件获取更多信息。