承接 a1383n/laravel-eloquent-settings 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

a1383n/laravel-eloquent-settings

最新稳定版本:v0.2.0

Composer 安装命令:

composer require a1383n/laravel-eloquent-settings

包简介

Easily manage model-specific settings in Laravel with Laravel Eloquent Settings—a versatile package for streamlined configuration.

README 文档

README

Laravel Eloquent Settings is a powerful package for managing model-specific settings in Laravel applications. This package provides a flexible and efficient way to define, handle, and persist settings for your Eloquent models.

Installation

You can install the package via composer:

composer require a1383n/laravel-eloquent-settings

Next, publish the configuration file:

php artisan vendor:publish --provider=LaravelEloquentSettings\EloquentSettingsServiceProvider

This will create a configuration file at config/eloquent_settings.php and a migration at database/migeration/**_create_eloquent_settings_table.php

Run the migrations to create the necessary database table:

php artisan migrate

Usage

Implement HasSettingsInterface on your Model

First, make sure your model implements the HasSettingsInterface and uses the HasSettings trait. Implement the definedSettings method to define the settings for your model:

use Illuminate\Database\Eloquent\Model;
use LaravelEloquentSettings\Enums\SettingValueType;
use LaravelEloquentSettings\Contracts\HasSettingsInterface;
use LaravelEloquentSettings\HasSettings;

class User extends Model implements HasSettingsInterface
{
    use HasSettings;

    public function definedSettings(SettingDefinition $definition): void
    {
        $definition->define('locale')
            ->type(SettingValueType::STRING)
            ->default('fa-IR');

        $definition->define('extra')
            ->type(SettingValueType::ARRAY)
            ->nullable();
    }
}

Use Settings

Now that you've defined settings, you can interact with them through the SettingHandler:

use App\Models\User;

$user = User::findOrFail(1);
$user->getSettingValueByName('locale');
$user->setSettingValueByName('locale', 'en-US');

SettingResolver and SettingSetter

The package also provides SettingResolver and SettingSetter for handling setting resolution and updates:

use LaravelEloquentSettings\EloquentSettings;
use LaravelEloquentSettings\SettingResolver;
use LaravelEloquentSettings\SettingSetter;
use App\Models\User;

$handler = EloquentSettings::getHandler(User::find(1));

$resolver = new SettingResolver($handler);
$value = $resolver($settings->get('locale'));

$setter = new SettingSetter($handler);
$setter('extra', ['foo' => 'bar']);

Configuration

You can customize the package behavior by modifying the eloquent_settings.php configuration file. Adjust settings such as the database table name and default values according to your requirements.

Credits

This package is inspired by the need for a simple and effective way to manage model-specific settings in Laravel applications.

License

Laravel Eloquent Settings is open-sourced software licensed under the MIT license.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-13