jaspaul / 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'
设置缓存
如果您打算使用缓存来存储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}
替换为您系统中用户的唯一标识符,以从该特性中移除。