定制 tatter/settings 二次开发

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

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

tatter/settings

Composer 安装命令:

composer require tatter/settings

包简介

Lightweight settings management for CodeIgniter 4

README 文档

README

Lightweight settings management for CodeIgniter 4

Coverage Status

WARNING

Since this library's last major version the CodeIgniter team has published its own Settings Library. That library and this offer some non-overlapping features but they do represent a conflict in name and implementation. The future of this library is not yet determined, but some options are:

  • Deprecate this library and move any missing features to the CodeIgniter version
  • Rework this library as an extension of the official package
  • Maintain the current functionality with a name change to avoid conflict

To follow or contribute to the planning for this library please visit the Upcoming Changes Discussion.

Quick Start

  1. Install with Composer: > composer require tatter/settings
  2. Update the database: > php spark migrate -all
  3. Use spark to create templates: > php spark settings:add timezone user America/New_York
  4. Use the service to access user settings:
service('settings')->timezone = $_POST['timezone_preference'];
...
$userTimezone = service('settings')->timezone;

Features

Provides ready-to-use settings management for CodeIgniter 4

Installation

Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:

  • > composer require tatter/settings

Or, install manually by downloading the source files and adding the directory to app/Config/Autoload.php.

Once the files are downloaded and included in the autoload, run any library migrations to ensure the database is setup correctly:

  • > php spark migrate -all

Usage

Once the library is included all the resources are ready to go and you are ready to start adding settings. You may import setting templates directly into the settings table or add them manually with the CLI command php spark settings:add.

Settings also comes with a database seeder for some recommended default templates. Run the seeder from the command line:

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

This will add appropriately-scoped templates and default values for the following settings:

Name Description Data Type Default Value Protected
siteVersion Current version of this project string 1.0.0 Yes
brandName Brand name for this project string Brand Yes
brandLogo Brand logo for this project string /assets/images/logo.png Yes
orgName Your organization name string Organization Yes
orgLogo Your organization logo string /assets/images/logo.png Yes
orgUrl Your organization URL uri https://example.com Yes
orgAddress Your organization address string 4141 Postmark Dr Anchorage, AK Yes
orgPhone Your organization phone string (951) 262-3062 Yes
currencyUnit Currency format for number helper string USD Yes
currencyScale Conversion rate to the fractional monetary unit int 100 Yes
databaseTimezone Timezone for the database server(s string UTC Yes
serverTimezone Timezone for the web server(s) string UTC Yes
timezone Timezone for the user string America/New_York No
theme Site display theme int 1 No
perPage Number of items to show per page int 10 No

Warning: This list is subject to change between major versions.

Note that the seeder will not overwrite existing values so it is safe to re-run at any time. See also src/Database/Seeds/SettingsSeeder.php.

Setting Scope

Settings come in three modes: global, user, and dynamic.

  • Global settings are the same for every user and provide project owners to set application-wide values; set protected to 1
  • User settings start with a template value but each user may make their own value that persists across sessions; set protected to 0
  • Dynamic settings have no template but can be created and returned on-the-fly; they only persists for the current session.

Examples:

Name Scope Content Notes Protected?
latestRelease Global 0.7.6 Git-style tag of latest code release 1
timezone User America/New_York Local timezone to use across the application 0
perPage User 10 Default number of items to show per page 0
jobsSearch Dynamic backend php User's most recent search term for jobs n/a
  • When you release a new version of your software:

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

  • When a user searches a list of jobs:

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

Magic Config

Settings comes with a magic configuration file that allows direct access to template values. This is a convenient way to access the library in a traditional framework fashion:

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

Note that unlike the Service or Library values from the magic config are directly from the template default and are not affected by user overrides:

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

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

tatter/settings 适用场景与选型建议

tatter/settings 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10k 次下载、GitHub Stars 达 22, 最近一次更新时间为 2019 年 04 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「codeigniter」 「Settings」 「preferences」 「codeigniter4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 tatter/settings 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 tatter/settings 我们能提供哪些服务?
定制开发 / 二次开发

基于 tatter/settings 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

  • Stars: 22
  • Watchers: 3
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-04-08