PHPackages                             sentinel-service/laravel-remote-config - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sentinel-service/laravel-remote-config

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

sentinel-service/laravel-remote-config
======================================

Remote configuration management for Laravel applications

v1.1.0(12mo ago)03.6k↓33.3%MITPHPPHP ^8.1

Since Dec 24Pushed 12mo agoCompare

[ Source](https://github.com/sentinel-service/laravel-remote-config)[ Packagist](https://packagist.org/packages/sentinel-service/laravel-remote-config)[ RSS](/packages/sentinel-service-laravel-remote-config/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Laravel Remote Config
=====================

[](#laravel-remote-config)

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')` 时，扩展包会：

1. 从远程服务器获取配置
2. 根据映射关系更新配置值
3. 缓存结果

### 刷新配置

[](#刷新配置)

你可以使用提供的 Artisan 命令刷新远程配置：

```
php artisan remote-config:refresh
```

### 缓存机制

[](#缓存机制)

扩展包使用文件缓存系统存储远程配置：

- 缓存文件位置：`storage/framework/cache/data/remote-config.json`
- 缓存时间可通过 `REMOTE_CONFIG_CACHE_TTL` 环境变量配置
- 支持自动过期和刷新

### 错误处理

[](#错误处理)

扩展包会优雅地处理各种错误情况：

- 远程服务器不可用时使用本地配置
- 缓存无效时自动刷新
- 配置映射错误时保持原值

安全性
---

[](#安全性)

在存储敏感信息（如 API 密钥）时，请确保：

1. 使用 HTTPS 协议访问远程配置 API
2. 妥善保管 REMOTE\_CONFIG\_SECRET
3. 使用环境变量存储敏感信息
4. 定期更换密钥和令牌

架构说明
----

[](#架构说明)

扩展包采用模块化设计：

- `Repository/RemoteConfig`: 核心配置仓库，继承自 Laravel 的 Repository
- `Services/RemoteConfigService`: 处理远程配置获取
- `Services/ConfigCacheService`: 管理配置缓存
- `Services/PathConfigMapper`: 处理配置路径映射
- `Commands/RefreshConfigCommand`: 提供配置刷新命令
- `Contracts`: 定义接口规范

这种设计确保了：

- 高内聚低耦合
- 易于测试和维护
- 符合 SOLID 原则
- 灵活的扩展性

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance50

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~142 days

Total

2

Last Release

361d ago

PHP version history (2 changes)v1.0.0PHP ^8.0

v1.1.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1075529?v=4)[Chris](/maintainers/CarlCheng)[@carlcheng](https://github.com/carlcheng)

### Embed Badge

![Health badge](/badges/sentinel-service-laravel-remote-config/health.svg)

```
[![Health](https://phpackages.com/badges/sentinel-service-laravel-remote-config/health.svg)](https://phpackages.com/packages/sentinel-service-laravel-remote-config)
```

###  Alternatives

[stevebauman/location

Retrieve a user's location by their IP Address

1.3k7.6M65](/packages/stevebauman-location)[nativephp/mobile

NativePHP for Mobile

82724.0k43](/packages/nativephp-mobile)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[pulkitjalan/ip-geolocation

IP Geolocation Wrapper with Laravel Support

89164.9k1](/packages/pulkitjalan-ip-geolocation)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
