temant/settings-manager

基于 doctrine orm 的灵活设置管理库。

v1.1.0 2024-09-11 08:06 UTC

This package is auto-updated.

Last update: 2024-09-12 08:06:31 UTC


README

Build Status Coverage Status License PHPStan

为 PHP 应用程序提供的灵活设置管理系统,支持多种数据类型,并与 Doctrine ORM 无缝集成。它提供设置导入、导出和自动类型检测功能。

特性

  • 多种数据类型:支持 stringintegerbooleanfloatJSON 类型。
  • 导入/导出:轻松以 JSON 或数组格式导入/导出设置。
  • Doctrine ORM 集成:使用 Doctrine ORM 的强大功能管理设置。
  • 自动类型检测:自动检测设置的 数据类型。
  • 高度可定制:轻松扩展和修改功能。

安装

  1. 通过 Composer 安装

    composer require temant/settings-manager
  2. 确保您的项目中已正确安装和配置了 Doctrine ORM。

用法

基本设置

use Temant\SettingsManager\SettingsManager;
use Temant\SettingsManager\Enum\SettingType;
use Doctrine\ORM\EntityManagerInterface;

// Create a SettingsManager instance with Doctrine EntityManager
$settingsManager = new SettingsManager($entityManager);

// Add or update a setting
$settingsManager->set('site_name', 'My Awesome Site', SettingType::STRING);

// Retrieve a setting
$siteName = $settingsManager->get('site_name')->getValue();
echo $siteName; // Outputs 'My Awesome Site'

// Remove a setting
$settingsManager->remove('site_name');

导入和导出设置

您可以选择以数组或 JSON 格式轻松导入或导出设置。

导出到 JSON

use Temant\SettingsManager\Utils\SettingsExporter;

$jsonData = SettingsExporter::toJson($settingsManager);
echo $jsonData;

从 JSON 导入

use Temant\SettingsManager\Utils\SettingsImporter;

$jsonData = '{"site_name": {"name": "site_name", "value": "My Awesome Site", "type": "STRING"}}';
SettingsImporter::fromJson($settingsManager, $jsonData);

运行测试

使用 PHPUnit 运行测试套件

composer test

使用 PHPStan 进行静态分析

composer phpstan

贡献

我们欢迎贡献!请随意提交问题或拉取请求。对于重大更改,请先提交问题讨论您想要更改的内容。

许可

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。