损坏者/设置

CodeIgniter 4 的轻量级设置管理

v2.1.0 2021-07-10 12:23 UTC

README

CodeIgniter 4 的轻量级设置管理

Coverage Status

警告

自从这个库的最后一个主要版本以来,CodeIgniter 团队已经发布了他们自己的 设置库。这个库和这个库提供了一些不重叠的功能,但它们确实在名称和实现上存在冲突。这个库的未来尚未确定,但有一些选择

  • 弃用此库,并将任何缺失的功能移至 CodeIgniter 版本
  • 将此库作为官方包的扩展进行重构
  • 通过更改名称以避免冲突来维护当前功能

要关注或参与此库的规划,请访问 即将到来的更改讨论

快速开始

  1. 使用 Composer 安装: > composer require tatter/settings
  2. 更新数据库: > php spark migrate -all
  3. 使用 spark 创建模板: > php spark settings:add timezone user America/New_York
  4. 使用服务来访问用户设置
service('settings')->timezone = $_POST['timezone_preference'];
...
$userTimezone = service('settings')->timezone;

特性

为 CodeIgniter 4 提供 ready-to-use 的设置管理

安装

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

  • > composer require tatter/settings

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

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

  • > php spark migrate -all

使用方法

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

设置 还附带了一些推荐的默认模板的数据库生成器。从命令行运行生成器

php spark db:seed "Tatter\Settings\Database\Seeds\SettingsSeeder"

这将添加相应范围的模板和以下设置的默认值

警告:此列表可能在主要版本之间发生变化。

请注意,生成器不会覆盖现有值,因此可以在任何时候安全地重新运行。另请参阅 src/Database/Seeds/SettingsSeeder.php

设置范围

设置 有三种模式:全局、用户和动态。

  • 全局设置对每个用户都相同,允许项目所有者设置应用程序级别的值;将 protected 设置为 1
  • 用户设置从模板值开始,但每个用户都可以根据自己的值创建自己的值,该值可以跨会话持续存在;将 protected 设置为 0
  • 动态设置没有模板,但可以即时创建和返回;它们仅对当前会话有效。

示例

  • 当您发布您软件的新版本时

    model('SettingModel')->where('name', 'latestRelease')->update(['content' => '1.2.3']; echo view('home', ['latestRelease' => service('settings')->latestRelease]);

  • 当用户搜索工作列表时

    $settings->jobsSearch = $_POST['searchTerm']; $data['jobs'] = $jobModel->paginate($settings->perPage);

魔法配置

Settings 包含一个魔法配置文件,允许直接访问模板值。这是一种方便的方式,以传统框架的方式访问库

$logo = config('Settings')->projectLogo;

请注意,与魔法配置中的服务或库值不同,模板默认值直接受影响,不会受到用户覆盖的影响

service('settings')->set('perPage', 20);

echo service('settings')->perPage; // 20
echo config('Settings')->perPage; // 10