soapbox/laravel-rollout
一个将发布功能集成到您的Laravel项目的软件包。
Requires
- php: >=7.2.5
- illuminate/cache: ^7|^8
- illuminate/config: ^7|^8
- illuminate/console: ^7|^8
- illuminate/database: ^7|^8
- illuminate/support: ^7|^8
- opensoft/rollout: 2.2.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.1
- illuminate/container: ^7|^8
- mockery/mockery: ^1.2
- orchestra/testbench: ^5.0
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^2.8
README
一个用于opensoft/rollout的Laravel软件包
安装
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}
替换为系统中用户的唯一标识符,以从该功能中删除。