定制 rdcstarr/laravel-settings 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rdcstarr/laravel-settings

Composer 安装命令:

composer require rdcstarr/laravel-settings

包简介

A simple settings package for Laravel.

README 文档

README

Latest Version on Packagist Tests Code Style Downloads

Simple settings management for Laravel — because configuration should be easy.

✨ Features

  • Cache built-in – automatic caching for blazing-fast reads
  • 🔄 Smart type casting – automatic conversion between strings, integers, booleans, arrays, and JSON
  • 📦 Batch operations – set multiple values at once with setMany()
  • 🛠️ Artisan commands – manage settings directly from the terminal
  • 💯 No exceptions – returns false on failure, never crashes your app

📦 Installation

Install the package via Composer:

composer require rdcstarr/laravel-settings

Automatic Installation (Recommended)

Run the install command to publish and run the migrations:

php artisan settings:install

Manual Installation

Alternatively, you can install manually:

  1. Publish the migrations:
php artisan vendor:publish --tag=settings-migrations
  1. Run the migrations:
php artisan migrate

🛠️ Artisan Commands

Manage your settings directly from the command line:

# List all settings
php artisan settings:list

# Get a specific setting
php artisan settings:get app.name

# Set a setting
php artisan settings:set app.name "My Application"

# Delete a setting
php artisan settings:delete old.setting [--force]

# Clear cache
php artisan settings:clear-cache [--force]

🔑 Usage

Basic Operations

// Get a setting (returns false if not found)
$name = settings()->get('app.name', 'Default Name');

// Set a setting (returns true on success, false if unchanged or failed)
settings()->set('app.name', 'My Application');

// Check if a setting exists
if (settings()->has('app.name')) {
    // Setting exists
}

// Delete a setting (returns true if deleted, false otherwise)
settings()->delete('old.setting');

// Get all settings
$all = settings()->all(); // Collection

Batch Operations

// Set multiple settings at once
settings()->setMany([
    'app.name' => 'My Application',
    'app.theme' => 'dark',
    'app.language' => 'en',
    'mail.driver' => 'smtp',
    'mail.host' => 'smtp.example.com',
]);

Helper Function

// Quick access with helper
$theme = settings('app.theme', 'light');

// Same as
$theme = settings()->get('app.theme', 'light');

Using the Facade

use Rdcstarr\Settings\Facades\Settings;

Settings::set('app.name', 'My App');
$name = Settings::get('app.name', 'Default');
Settings::delete('old.setting');

Cache Management

// Clear the cache (returns true on success)
settings()->flushCache();

Smart Type Casting

The package automatically handles type conversion:

// Integers
settings()->set('max_users', 100);
settings()->get('max_users'); // returns (int) 100

// Booleans
settings()->set('maintenance_mode', true);
settings()->get('maintenance_mode'); // returns (bool) true

// Arrays
settings()->set('config', ['key' => 'value']);
settings()->get('config'); // returns array

// Null values
settings()->set('optional', null);
settings()->get('optional'); // returns null

💡 Real-World Examples

// Application configuration
settings()->setMany([
    'site.name' => 'My Website',
    'site.description' => 'A wonderful site',
    'site.maintenance_mode' => false,
]);

// Feature flags
if (settings()->get('features.new_dashboard', false)) {
    return view('dashboard.new');
}

// User preferences
settings()->set("user.{$userId}.theme", 'dark');
settings()->set("user.{$userId}.language", 'en');

// Email settings
$mailConfig = [
    'mail.driver' => 'smtp',
    'mail.host' => 'smtp.mailtrap.io',
    'mail.port' => 2525,
    'mail.username' => 'user',
    'mail.password' => 'pass',
];
settings()->setMany($mailConfig);

// API keys and secrets
settings()->set('services.stripe.key', 'sk_test_...');
settings()->set('services.stripe.secret', 'whsec_...');

🧪 Testing

composer test

📖 Resources

  • Changelog for more information on what has changed recently. ✍️

👥 Credits

📜 License

  • License for more information. ⚖️

rdcstarr/laravel-settings 适用场景与选型建议

rdcstarr/laravel-settings 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 39 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 09 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「laravel」 「Settings」 「groups」 「laravel-settings」 「Rdcstarr」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 rdcstarr/laravel-settings 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 rdcstarr/laravel-settings 我们能提供哪些服务?
定制开发 / 二次开发

基于 rdcstarr/laravel-settings 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 39
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-09-12