soapbox/laravel-rollout

一个将发布功能集成到您的Laravel项目的软件包。

v4.0.0 2020-12-10 16:47 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'

设置缓存

如果您打算使用缓存来存储发布设置,请确保为您的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}替换为您想从发布中永久删除的功能名称。

所有人

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}替换为系统中用户的唯一标识符,以从该功能中删除。