hiddencorporation / laravel-db-config
: 为 Laravel 处理配置数据集的包
Requires
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
- sempro/phpunit-pretty-print: ^1.0
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())
- $name 变量的名称将被slugify以生成一个 技术名称。
- $value 可以是任何类型的变量
- $additionalAttribute _ description (字符串) _ cache_duration (整数),用于固定缓存或设置自动开始时的持续时间。 _ cache_management 默认为固定。 _ crypted (布尔值)
返回一个包含操作状态和创建的元素的数组,如果没有创建则返回错误列表。
- dbConfig::get($entity=false,$defaultReturnValue = Null,$full=false)
- $entity 配置ID,配置元素的名称或两者的混合数组。
- $defaultReturnValue (默认 = Null)您希望返回的默认值。
- $full 如果为true,将返回有关配置变量的所有信息
如果未找到数据,可以返回null,如果实体是数组,则返回变量数组,如果full为true,则返回单个值或包含所有信息的值。
- dbConfig::update($entity=false,$value=Null,$additionalAttribute=array())
- $entity 实体ID或技术名称
- $value (默认Null),新值或如果您只想管理其他属性则不设置值。
- $additionalAttribute 参见dbConfig::set
返回一个包含操作详细信息和找到的配置元素的数组。
- dbConfig::unset($entity)
- $entity 实体ID或技术名称
- $infoSup (默认false)获取有关配置在哪里被找到的更多信息。
返回 cache,db 或 true/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的测试
路线图
- 测试自动模式
- 为自动缓存管理创建单元测试以进行基准测试