sentinel-service/laravel-remote-config
Composer 安装命令:
composer require sentinel-service/laravel-remote-config
包简介
Remote configuration management for Laravel applications
README 文档
README
Laravel 远程配置管理包。此扩展包允许你从中央配置服务器存储和获取配置值,支持加密、缓存,并与 Laravel 的配置系统无缝集成。
功能特性
- 与 Laravel 配置系统无缝集成
- 支持配置值加密
- 自动缓存(可配置缓存时间)
- 请求失败重试机制
- 配置刷新命令行工具
- 本地配置值回退支持
- 符合 PSR-4 规范
- 支持路径映射配置
- 文件缓存系统
环境要求
- PHP ^7.4|^8.0
- Laravel ^8.0|^9.0|^10.0|^11.0
- Guzzle ^7.0
安装
通过 composer 安装扩展包:
composer require sentinel-service/laravel-remote-config
配置
发布配置文件:
php artisan vendor:publish --provider="SentinelService\RemoteConfig\RemoteConfigServiceProvider"
这将在 config 目录下创建 remote.php 配置文件。在 .env 文件中添加以下环境变量:
REMOTE_CONFIG_API_URL=http://your-config-api.com REMOTE_CONFIG_SECRET=your-secret-key REMOTE_CONFIG_CACHE_TTL=3600
配置选项
return [ // API 配置 'api' => [ 'url' => env('REMOTE_CONFIG_API_URL'), 'secret' => env('REMOTE_CONFIG_SECRET'), ], // 缓存设置 'cache' => [ 'ttl' => env('REMOTE_CONFIG_CACHE_TTL', 3600) // 缓存时间(秒),默认1小时 ], // 需要从远程获取的配置路径 'paths' => [ 'aws.key', 'services.r2' ], // 路径到环境变量的映射 'path_env_mapping' => [ 'aws.key' => [ 'key' => 'AWS_ACCESS_KEY_ID', 'secret' => 'AWS_SECRET_ACCESS_KEY' ], 'services.r2' => [ 'key' => 'R2_ACCESS_KEY_ID', 'secret' => 'R2_SECRET_ACCESS_KEY' ], // 单个值的例子 'app.name' => [ 'value' => 'APP_NAME' ], ] ];
使用方法
基本用法
安装后,你可以直接使用 Laravel 的 config() 辅助函数。扩展包会自动尝试从远程服务器获取配置值:
// 优先从远程获取配置,如果失败则使用本地配置 $value = config('aws.key');
路径映射
你可以在配置文件中定义路径映射,将远程配置值映射到指定的配置路径:
'path_env_mapping' => [ 'aws.key' => [ 'key' => 'AWS_ACCESS_KEY_ID', 'secret' => 'AWS_SECRET_ACCESS_KEY' ] ]
这样,当访问 config('aws.key') 时,扩展包会:
- 从远程服务器获取配置
- 根据映射关系更新配置值
- 缓存结果
刷新配置
你可以使用提供的 Artisan 命令刷新远程配置:
php artisan remote-config:refresh
缓存机制
扩展包使用文件缓存系统存储远程配置:
- 缓存文件位置:
storage/framework/cache/data/remote-config.json - 缓存时间可通过
REMOTE_CONFIG_CACHE_TTL环境变量配置 - 支持自动过期和刷新
错误处理
扩展包会优雅地处理各种错误情况:
- 远程服务器不可用时使用本地配置
- 缓存无效时自动刷新
- 配置映射错误时保持原值
安全性
在存储敏感信息(如 API 密钥)时,请确保:
- 使用 HTTPS 协议访问远程配置 API
- 妥善保管 REMOTE_CONFIG_SECRET
- 使用环境变量存储敏感信息
- 定期更换密钥和令牌
架构说明
扩展包采用模块化设计:
Repository/RemoteConfig: 核心配置仓库,继承自 Laravel 的 RepositoryServices/RemoteConfigService: 处理远程配置获取Services/ConfigCacheService: 管理配置缓存Services/PathConfigMapper: 处理配置路径映射Commands/RefreshConfigCommand: 提供配置刷新命令Contracts: 定义接口规范
这种设计确保了:
- 高内聚低耦合
- 易于测试和维护
- 符合 SOLID 原则
- 灵活的扩展性
sentinel-service/laravel-remote-config 适用场景与选型建议
sentinel-service/laravel-remote-config 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.25k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 12 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sentinel-service/laravel-remote-config 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sentinel-service/laravel-remote-config 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.25k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 34
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-24