jaspaul/laravel-rollout

一个用于将滚动发布集成到您的Laravel项目的软件包。

v4.0.0 2020-12-10 16:47 UTC

This package is auto-updated.

Last update: 2024-09-11 01:11:03 UTC


README

一个用于opensoft/rollout的Laravel软件包

Build Status Coverage Status Code Climate

安装

Composer

composer require jaspaul/laravel-rollout

配置服务提供者

软件包发现将自动配置服务提供者。

设置存储

发布配置

php artisan vendor:publish --provider 'Jaspaul\LaravelRollout\ServiceProvider'

设置缓存

如果您打算使用缓存来存储rollout的设置,请确保为您的Laravel应用程序启用缓存。注意,如果您使用缓存,部署期间的缓存清除将导致您的滚动发布设置被清除。如果您需要这些设置的持久性,请使用以下选项。

设置持久存储

这将允许您在每次部署清除应用程序缓存的情况下,仍然持久化滚动发布设置。

运行迁移
php artisan migrate
配置您的环境
ROLLOUT_STORAGE=database
ROLLOUT_TABLE=rollout

实现接口

用户

您的滚动发布用户必须实现 \Jaspaul\LaravelRollout\Contracts\User 接口。这通常将是您的主体用户对象

<?php

use Jaspaul\LaravelRollout\Helpers\User as Contract;

class User implements Contract
{
    /**
     * @return string
     */
    public function getRolloutIdentifier()
    {
        return $this->id;
    }
}

您的滚动发布组必须实现 \Jaspaul\LaravelRollout\Contracts\Group 接口。

<?php

use Jaspaul\LaravelRollout\Contracts\Group;

class BetaUsersGroup implements Group
{
    /**
     * The name of the group.
     *
     * @return string
     */
    public function getName(): string
    {
        return 'beta-users';
    }

     /**
     * Defines the rule membership in the group.
     *
     * @return boolean
     */
    public function hasMember($user = null): bool
    {
        if (!is_null($user)) {
            return $user->hasOptedIntoBeta();
        }

        return false;
    }
}

并且您应该更新您的本地 laravel-rollout.php 配置,以将组包含在组数组中

laravel-rollout.php

return [
    ...
    'groups' => [
        BetaUsersGroup::class
    ],
    ...
]

命令

添加组

php artisan rollout:add-group {feature} {group}

{feature} 替换为特性的名称,将 {group} 替换为在组类中定义的名称。

添加用户

php artisan rollout:add-user {feature} {user}

{feature} 替换为特性的名称,将 {user} 替换为您系统中用户的唯一标识符。

创建

php artisan rollout:create {feature}

{feature} 替换为您想要创建功能标志的特性名称。

停用

php artisan rollout:deactivate {feature}

{feature} 替换为您想要全局停用的特性名称。注意这将重置用户白名单。

删除

php artisan rollout:delete {feature}

{feature} 替换为您想要永久从rollout中删除的特性名称。

所有人

php artisan rollout:everyone {feature}

{feature} 替换为您想要将特性滚动到100%用户基数的特性名称。

列表

php artisan rollout:list

百分比

php artisan rollout:percentage {feature} {percentage}

{feature} 替换为您想要滚动的特性名称,将 {percentage} 替换为您要向其滚动特性的用户百分比。

移除组

php artisan rollout:remove-group {feature} {group}

{feature} 替换为特性的名称,将 {group} 替换为在组类中定义的名称。

移除用户

php artisan rollout:remove-user {feature} {user}

{feature} 替换为特性的名称,将 {user} 替换为您系统中用户的唯一标识符,以从该特性中移除。