jc-it / yii2-secrets
Yii2 的密钥存储和提取工具
v1.0.0
2022-01-13 11:27 UTC
Requires
- php: >=8.0
- jc-it/secrets: ^1.0.0
- yiisoft/yii2: ~2.0.42
Requires (Dev)
- captainhook/plugin-composer: ^5.3
- mikey179/vfsstream: ^1.6
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.2
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.1
- phpunit/phpunit: ^9.5
- ramsey/conventional-commits: ^1.3
- symfony/console: ^5.4.2
- symplify/easy-coding-standard: ^10.0
This package is auto-updated.
Last update: 2024-09-13 17:35:37 UTC
README
此扩展为 Yii2 提供密钥存储和提取功能。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
$ composer require jc-it/yii2-secrets
或将以下内容添加到您的 composer.json
文件的 require
部分:
"jc-it/yii2-secrets": "^<latest version>"
配置
密钥
建议只在应用加载之前在配置文件中使用此包,这样它们就不会在崩溃或意外情况下被您的应用程序丢弃。
$secrets = new \JCIT\secrets\SecretsService( new \JCIT\secrets\storages\Chained( new \JCIT\secrets\storages\Cache(getenv()), new \JCIT\secrets\storages\Json('/run/env.json'), new \JCIT\secrets\storages\Filesystem(__DIR__ . '/secrets'), ) );
请注意,在 Chained
存储中的顺序很重要,找到的第一个密钥值将被返回。
密钥提取
在部署新环境时,找出所有需要配置的密钥可能会很麻烦。此包包含一个控制台命令,可以提取密钥使用情况。
- 在控制台控制器中创建一个动作
class SecretsController extends Controller { public function actions(): array { return [ 'extract' => [ 'class' => Extract::class, 'calls' => ['$secrets->get', '$secrets->getAndThrowOnNull'], 'sourcePath' => '@app/', ], ]; } }
- 在依赖注入中添加存储(仅用于提取命令)
... 'container' => [ 'definitions' => [ \JCIT\secrets\interfaces\StorageInterface::class => function() { return new \JCIT\secrets\storages\Filesystem(__DIR__ . '/../../../secrets') } ] ],
致谢
- Joey Claessen
- Yii2 框架 的提取部分