定制 darshphpdev/laravel-settings 二次开发

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

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

darshphpdev/laravel-settings

最新稳定版本:v1.0.0

Composer 安装命令:

composer require darshphpdev/laravel-settings

包简介

A flexible Laravel package for managing application settings with support for file or database storage, encryption, and array format customization.

README 文档

README

Laravel Settings

Laravel Settings

Latest Version on Packagist Total Downloads License

A flexible Laravel package for managing application settings with support for file or database storage, encryption, and array format customization.

✨ Features

  • 💾 Multiple storage drivers (file or database)
  • 🔐 Value encryption support
  • 📦 Configurable array storage formats (JSON, CSV, or serialized)
  • 🛠️ Simple helper function for easy access
  • ⚡ Laravel artisan command for easy installation
  • 🚀 Cache support for better performance

📋 Requirements

  • 🐘 PHP 7.4|8.0
  • ⚡ Laravel 7.0|8.0|9.0|10.0|11.0

📥 Installation

You can install the package via composer:

composer require darshphpdev/laravel-settings

🔧 Setup

  1. Run the installation command:
php artisan settings:install

Artisan Command

This command will:

  • 🎯 Guide you through configuration options
  • 📝 Create the config file
  • 🔄 Publish migrations (if using database driver)
  1. If using database driver, run migrations:
php artisan migrate

⚙️ Configuration

The package configuration will be published to config/settings.php. Here are the available options:

return [
    // Storage driver: 'file' or 'database'
    'driver' => 'file',

    // Enable encryption for stored values
    'encrypt' => false,

    // Format for storing arrays: 'json', 'csv', 'serialize'
    'array_format' => 'json',

    // File storage settings
    'file' => [
        'path' => storage_path('app/settings.json'),
    ],

    // Database storage settings
    'database' => [
        'table' => 'settings',
    ],

    // Cache configurations
    'cache' => [
        'key' => 'laravel-settings',
        'ttl' => 3600,
        'enabled' => true,
    ]
];

📖 Usage

🔨 Using Helper Function

// Get a setting
settings()->get('site_name', 'Default site name');

// Set a setting
settings()->set('site_name', 'My Awesome Site');

// Set multiple settings
settings()->set('site_meta', [
    'name' => 'My Awesome Site',
    'description' => 'A great site'
]);

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

// Check if a setting exists
settings()->has('site_name');

// Remove a setting
settings()->forget('site_name');

// Clear all settings
settings()->clear();

📦 Working with Arrays

The package provides three formats for storing arrays:

  1. JSON (default) 📄:
settings()->set('my_array', ['one', 'two']); // Stored as JSON
  1. CSV 📑:
settings()->set('my_array', ['one', 'two']); // Stored as "one,two"
  1. Serialized 📎:
settings()->set('my_array', ['one', 'two']); // Stored using PHP serialization

🔐 Encryption

When encryption is enabled in the config, all values are automatically encrypted before storage and decrypted when retrieved:

// With encryption enabled
settings()->set('secret_key', 'sensitive-value'); // Stored encrypted

🛡️ Security

If you discover any security-related issues, please email mustafa.softcode@gmail.com instead of using the issue tracker.

👨‍💻 Credits

📄 License

This package is open-source software licensed under the MIT License.

统计信息

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

GitHub 信息

  • Stars: 10
  • Watchers: 1
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-19