battis/lazy-secrets
Composer 安装命令:
composer require battis/lazy-secrets
包简介
A (thin) wrapper for google/cloud-secret-manager to reduce boilerplate
README 文档
README
A (thin) wrapper for google/cloud-secret-manager to reduce boilerplate
Install
composer require battis/lazy-secrets
Use
use Battis\LazySecrets\Secrets; $data = Secrets::get("MY_APP_SECRET");
Background
While the Google Cloud Secret Manager is a fine way to store (and access) app secrets, it also entails a bunch of boilerplate code that I don't want to fat finger. So, instead of writing...
use Google\Cloud\SecretManager\V1\SecretManagerServiceClient; $client = new SecretManagerServiceClient(); $project = $_ENV["GOOGLE_CLOUD_PROJECT"]; $key = "MY_APP_SECRET"; $version = "latest"; $secret = $client->accessSecretVersion( "projects/$project/secrets/$key/versions/$version" ); $data = $secret->getPayload()->getData(); // and even (if you're packing a lot into one secret) $obj = json_decode($data); // ...and then using the $data or $obj
...I'd rather just write:
use Battis\LazySecrets\Secrets; $data = Secrets::get("MY_APP_SECRET"); // or Secrets::init($project, true); $obj = Secrets::get("MY_APP_SECRET");
Alternatively, a PSR-16 Simple Cache implementation is also available (for easy use with dependency injection):
use Battis\LazySecrets\Cache; // assume that the `GOOGLE_CLOUD_PROJECT` environment variable is set $secrets = new Cache(); $obj = $secrets->get("MY_APP_SECRET");
or
/** src/Example/DependencyConsumer */ namespace Example; use Psr\SimpleCache\CacheInterface; class DependencyConsumer { public function __constructor(CacheInterface $cache) { // ... } }
/** src/app.php */ $container = new DI\Container([ Psr\SimpleCache\CacheInterface::class => DI\create( \Battis\LazySecrets\Cache::class ), ]); $consumer = $container->get(DependencyConsumer::class);
battis/lazy-secrets 适用场景与选型建议
battis/lazy-secrets 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 632 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 11 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 battis/lazy-secrets 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 battis/lazy-secrets 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 632
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2022-11-23