adnduweb/ci4_settings

CodeIgniter 4的轻量级设置管理

1.0.6.8 2020-10-19 19:52 UTC

This package is auto-updated.

Last update: 2024-09-20 04:40:46 UTC


README

CodeIgniter 4的轻量级设置管理

快速开始

  1. 使用Composer安装:> composer require adnduweb/settings
  2. 更新数据库:> php spark migrate -all
  3. 添加设置:> php spark settings:add timezone user America/New_York
  4. 加载服务:$settings = service('settings');
  5. 按用户获取/设置设置
$settings->timezone = $_POST['timezone_preference'];
...
$userTimezone = $settings->timezone;

功能

为CodeIgniter 4提供即用型设置管理

安装

通过Composer轻松安装,利用CodeIgniter 4的自动加载功能,并始终保持最新

  • > composer require adnduweb/settings

或者,通过下载源文件并将目录添加到app/Config/Autoload.php来手动安装。

下载文件并包含在自动加载中后,运行任何库迁移以确保数据库正确设置

  • > php spark migrate -all

配置(可选)

可以通过扩展其配置文件来更改库的默认行为。将Settings.php复制到app/Config/,并遵循注释中的说明。如果app/Config中没有找到配置文件,库将使用其自身的。

使用方法

一旦包含库,所有资源就绪,您可以开始添加设置。您可以直接将设置模板导入到settings表,或使用CLI命令php spark settings:add手动添加。

Settings还附带一些推荐默认模板的数据库种子。从命令行运行种子

php spark db:seed \\Adnduweb\\Settings\\Database\\Seeds\\SettingsSeeder

这将添加适当的模板和以下设置的默认值

databaseTimezone, serverTimezone, timezone, siteVersion, theme, perPage, brandName, brandLogo, orgName, orgLogo, orgUrl, orgAddress, orgPhone

请注意,种子不会覆盖现有值,因此可以在任何时间安全运行。有关完整列表(包括范围、描述和默认值),请参阅src/Database/Seeds/SettingsSeeder.php

范围

设置有三个范围之一:会话、用户、全局。

  • 全局设置对每个用户都相同,提供了一种动态的方式来设置应用级别的值
  • 用户设置从默认模板值开始,但每个用户都可以创建自己的默认值,该值可以在会话之间持续存在
  • 会话设置从默认模板值开始,可以由用户更改,但在每个新会话时都会恢复

示例

+---------------+---------+------------------+----------------------------------------------+------------+
| Name          | Scope   | Content          | Notes                                        | Protected? |
+---------------+---------+------------------+----------------------------------------------+------------+
| latestRelease | global  | 0.7.6            | Git-style tag of latest code release         | 0          |
| perPage       | user    | 10               | Default number of items to show per page     | 1          |
| timezone      | user    | America/New_York | Local timezone to use across the application | 1          |
| jobsSearch    | session |                  | User's most recent search term for jobs      | 1          |
+---------------+---------+------------------+----------------------------------------------+------------+
  • 当您发布软件的新版本时

$settings->latestRelease = $newVersion;

  • 当用户搜索工作列表时
$settings->jobsSearch = $_POST['searchTerm'];
$data['jobs'] = $jobModel->paginate($settings->perPage);