adlogix / zf2-opensoft-rollout
Opensoft Rollout 库的 ZF2 模块
1.3.0
2018-11-27 14:51 UTC
Requires
- php: >=5.6
- opensoft/rollout: ~2.2
Requires (Dev)
- doctrine/orm: ~2.5
- phpunit/phpunit: ~5.0
- zendframework/zend-db: ~2.9
- zendframework/zend-developer-tools: ^1.2
- zendframework/zend-i18n: ~2.8
- zendframework/zend-log: ~2.10
- zendframework/zend-mvc: ~2.7
- zendframework/zend-serializer: ~2.9
- zendframework/zend-servicemanager: ~2.7
- zendframework/zend-stdlib: ~2.7
- zendframework/zend-test: ~2.6
README
为 opensoft/rollout 提供的 ZF2 模块
安装
- 通过运行 composer 安装模块
composer require adlogix/zf2-opensoft-rollout:~1.0
- 将
Adlogix\Zf2Rollout
模块添加到您的config/application.config.php
文件中的模块部分
配置
可以在应用程序配置中定义 Rollout 参数
<?php return [ 'rollout' => [ // Service id to obtain a Opensoft\Rollout\RolloutUserInterface instance 'user_service' => null, // Service id to obtain a Opensoft\Rollout\Storage\StorageInterface instance 'storage_service' => 'zf2_rollout_storage_array', // Required configuration if storage service is Adlogix\Zf2Rollout\Storage\ZendDbAdapterStorage 'zend_db_storage' => [ 'table_name' => 'rollout_feature' ], // Required configuration if storage service is Adlogix\Zf2Rollout\Storage\Doctrine\DoctrineORMStorage 'doctrine_storage' => [ 'class_name' => SomeFeatureEntity::class ], // (Optional) Describes the features with a description 'features' => [ 'feature_1' => [ 'description' => 'The description of the feature.' ] ] ], ]
用法
要从 zend 控制器中检索 Rollout 服务
<?php $rollout = $this->getServiceLocator()->get('zf2_rollout');
有关如何使用库的更多信息,请参阅 opensoft/rollout 的文档。
描述功能
由于 Rollout 库尚未提供描述功能标志的功能,您可以通过此模块定义它们。为此,只需将功能标志标识符添加到 Rollout 配置的 'features' 部分即可,如下所示
<?php return [ 'rollout' => [ // (Optional) Describes the features with a description 'features' => [ 'feature_1' => [ 'description' => '' ] ] ], ];
要在视图中显示描述,必须调用视图辅助函数:rollout_description。如果配置中未找到描述,将返回空字符串。
echo $this->rollout_description('feature_1');
Zend 开发者工具栏
此模块支持 Zend 开发者工具栏。
⚠️ ZDT Rollout 提供快速切换操作,允许用户通过单击工具栏中列出的功能元素之一来快速启用/禁用功能。请确保仅在开发模式下授权这些操作。⚠️
BjyAuthorize 的一个启用端点的示例
<?php // config/autoload/authorization.development.php use Adlogix\Zf2Rollout\Service\Controller\RolloutController; return [ 'bjyauthorize' => [ 'guards' => [ // Add this if you are adding guards on controllers 'BjyAuthorize\Guard\Controller' => [ ['controller' => RolloutController::class, 'roles' => ['guest','user']], ], // Add this if you are adding guards on routes 'BjyAuthorize\Guard\Route' => [ ['route' => 'rollout_feature_toggle', 'roles' => ['guest','user']], ], ], ], ];