hiddencorporation/laravel-db-config

: 为 Laravel 处理配置数据集的包

1.0.12 2021-05-28 02:03 UTC

This package is auto-updated.

Last update: 2024-09-28 09:25:10 UTC


README

一个用于管理 Laravel 中配置项及其属性的包。php laravel 配置 缓存 db

这是什么

另一个用于处理 Laravel 中配置数据的库,更多的是一个处理 GitHub/Packagist 同步的练习。这个库。

除了允许您简单地保存变量到数据库外,此包还允许您

  • 为这些变量添加描述。

  • 标准化这些变量的缓存(设置索引,更新缓存时间,更新缓存的配置变量)。

  • 值的实时加密/解密。

  • 自动检索多个配置值。

安装

使用 GitHub

git clone https://github.com/hiddenCorporation/laravel-db-config.git

使用 Laravel Packager

使用 Laravel Packager https://github.com/Jeroen-G/laravel-packager。您可以使用 artisan 在您的 Laravel 应用程序中集成它。

https://github.com/Jeroen-G/laravel-packager

使用 Composer

$ composer require hiddencorporation/laravel-db-config 

配置

安装包后,您需要

发布配置变量以供包使用

$ php artisan vendor:publish --tag=dbConfig.config

迁移数据库布局

$ php artisan migrate

配置文件 & env

**(可选)更改包的行为**

在您的 .env 中设置

  • DBCONFIG_USECACHE 使用缓存或不使用缓存。

  • DBCONFIG_PREFIXCACHE & DBCONFIG_PREFIXCACHE_INTERNAL 主要用于避免冲突,通常使用前缀来定义边界。

  • 自动缓存管理 实验性 -

如果启用了缓存,您可以在设置配置时添加 cache_management 选项。cache_management 可以是 fix 或 auto。(fix 是默认值)。

自动模式仍在评估中。

  • fix:仅使用 cache_duration
  • auto

如果填写了 cache_duration,系统将使用此时间将您的配置注册到缓存中。如果没有填写此字段,则此字段将取 cache_duration_default 的值。

  • DBCONFIG_CACHE_AUTO_GET 激活获取过程以提高 cache_duration。

  • DBCONFIG_CACHE_AUTO_MODIFY 激活修改过程以提高 cache_duration。

  • DBCONFIG_CACHE_DURATION_MIN 以秒为单位,自动缓存的变量最小时间。

  • DBCONFIG_CACHE_DURATION_MAX 以秒为单位,自动缓存的变量最大时间。

  • DBCONFIG_CACHE_DURATION_DEFAULT 以秒为单位,自动缓存的变量默认时间。

  • DBCONFIG_CACHE_SSM_FLOOR 在 1 和 0 之间,将其视为比率:我想在未缓存时发生相同变量的 20% 修改,我的比率将是 0.8。

  • DBCONFIG_CACHE_TSM_FLOOR 用于重新计算 cache_duration 的修改次数。

  • DBCONFIG_CACHE_SSG_FLOOR 在 1 和 0 之间,将其视为比率:我想在未缓存时发生相同变量的 20% 获取,我的比率将是 0.8。

  • DBCONFIG_CACHE_TSG_FLOOR 用于重新计算 cache_duration 的获取请求数。

cache_ssg_floor 和 cache_tsg_floor 用于减少变量的 cache_duration。

  • DBCONFIG_CACHE_CALCULUS_PRECISION 在 0 和 1 之间。为了避免修改和获取之间的无限斗争,我们可以设置一个额外的比率:例如,对于 ccp 为 0.02

当SSM为0.8时,修改的评分计算必须在0.078到0.082之间,才能被认为是良好的,对于get操作也是如此。

方法

  • dbConfig::set($name,$value,$additionalAttribute=array())
  1. $name 变量的名称将被slugify以生成一个 技术名称
  2. $value 可以是任何类型的变量
  3. $additionalAttribute _ description (字符串) _ cache_duration (整数),用于固定缓存或设置自动开始时的持续时间。 _ cache_management 默认为固定。 _ crypted (布尔值)

返回一个包含操作状态和创建的元素的数组,如果没有创建则返回错误列表。

  • dbConfig::get($entity=false,$defaultReturnValue = Null,$full=false)
  1. $entity 配置ID,配置元素的名称或两者的混合数组。
  2. $defaultReturnValue (默认 = Null)您希望返回的默认值。
  3. $full 如果为true,将返回有关配置变量的所有信息

如果未找到数据,可以返回null,如果实体是数组,则返回变量数组,如果full为true,则返回单个值或包含所有信息的值。

  • dbConfig::update($entity=false,$value=Null,$additionalAttribute=array())
  1. $entity 实体ID或技术名称
  2. $value (默认Null),新值或如果您只想管理其他属性则不设置值。
  3. $additionalAttribute 参见dbConfig::set

返回一个包含操作详细信息和找到的配置元素的数组。

  • dbConfig::unset($entity)
  1. $entity 实体ID或技术名称
  2. $infoSup (默认false)获取有关配置在哪里被找到的更多信息。

返回 cachedbtrue/false 取决于是否 $infoSup 为 true

返回 Null,true 或 false

  • dbConfig::configExist($entity,$infoSup=false)

命令

$ php artisan dbConfig:clear --operation=[db,cache,all] 

清除缓存专门针对dbConfig使用的元素,同时保留其他缓存内容完整

$ php artisan dbConfig:test --which=[info, testCache, testCrypt, testGeneral] 

测试已经针对基本使用进行过,目前尚未测试自动缓存管理。

单元测试

$ vendor/bin/phpunit packages/Hephaistos/dbConfig

testUnits复现dbConfig:test的测试

路线图

  1. 测试自动模式
  2. 为自动缓存管理创建单元测试以进行基准测试