dd / evolutioncms-snippets-ddobjecttools
此包的最新版本(1.0.0)没有提供许可证信息。
修改对象的工具。
1.0.0
2024-06-13 15:12 UTC
Requires
- php: >=5.6.0
- dd/evolutioncms-libraries-ddtools: >=0.62.0
This package is auto-updated.
Last update: 2024-09-06 08:57:21 UTC
README
修改对象的工具。
要求
- PHP >= 5.6
- (MODX)EvolutionCMS >= 1.1
- (MODX)EvolutionCMS.libraries.ddTools >= 0.62
安装
使用(MODX)EvolutionCMS.libraries.ddInstaller
只需在您的源代码或控制台中运行以下PHP代码
//Include (MODX)EvolutionCMS.libraries.ddInstaller require_once( $modx->getConfig('base_path') . 'assets/libs/ddInstaller/require.php' ); //Install (MODX)EvolutionCMS.snippets.ddObjectTools \DDInstaller::install([ 'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddObjectTools', 'type' => 'snippet', ]);
- 如果您的网站上不存在
ddObjectTools
,则ddInstaller
将直接安装它。 - 如果您的网站上已存在
ddObjectTools
,则ddInstaller
将检查其版本并在需要时更新它。
手动安装
1. 元素 → 片段:创建一个新片段,以下数据
- 片段名称:
ddObjectTools
。 - 描述:
<b>1.0</b> 修改对象的工具。
。 - 类别:
核心
。 - 解析DocBlock:
否
。 - 片段代码(PHP):将存档中的
ddObjectTools_snippet.php
文件的内容插入。
2. 元素 → 管理文件
- 创建一个新的文件夹
assets/snippets/ddObjectTools/
。 - 将存档提取到文件夹中(除
ddObjectTools_snippet.php
外)。
参数描述
-
sourceObject
-
extend
-
extend->objects
-
extend->objects[i]
- 描述:包含要合并的附加属性的对象或数组。
- 有效值
对象
数组
- 必需
-
extend->deep
- 描述:如果为真,则合并变为递归(也称为“深拷贝”)。
- 有效值:
布尔值
- 默认值:
true
-
extend->overwriteWithEmpty
- 描述:用空值覆盖字段。
以下值被认为是空的''
— 空字符串[]
— 空数组(object) []
— 空对象NULL
- 有效值:
布尔值
- 默认值:
true
- 描述:用空值覆盖字段。
-
getPropValue
-
getPropValue->name
- 描述:要返回的对象属性名称或数组索引/键。
您还可以使用'.'
来获取嵌套属性(更多信息请参见\DDTools\ObjectTools::getPropValue
)。 - 有效值:
string
- 必需
- 描述:要返回的对象属性名称或数组索引/键。
-
getPropValue->notFoundResult
- 描述:属性未找到时返回的内容。
- 有效值:
mixed
- 默认值:
null
-
outputter
- 描述:输出格式(当结果为对象或数组时)。
值不区分大小写(以下值相等:'stringjsonauto'
、'stringJsonAuto'
、'STRINGJSONAUTO'
等)。 - 有效值
- 代码片段可以返回对象作为字符串
'stringJsonAuto'
— 根据 result 对象返回stringJsonObject
或stringJsonArray
'stringJsonObject'
'stringJsonArray'
'stringQueryFormatted'
— [查询字符串](https://en.wikipedia.org/wiki/Query_string)
- 代码片段也可以返回原生的 PHP 对象或数组(通过
\DDTools\Snippet
调用更方便)。'objectAuto'
— 根据 result 对象返回stdClass
或array
'objectStdClass'
—stdClass
'objectArray'
—array
- 代码片段可以返回对象作为字符串
- 默认值:
'stringJsonAuto'
- 描述:输出格式(当结果为对象或数组时)。
示例
所有示例均使用 HJSON 编写,但您也可以使用纯 JSON。
合并两个或多个对象的内容到第一个对象(使用 extend
参数)
[[ddObjectTools?
&sourceObject=`{
cat: mew
dog: {
name: Floyd
weight: 6
}
rabbit: 42
}`
&extend=`{
objects: [
{
dog: {
weight: 10
}
bird: 0
}
]
}`
]]
返回
{ "cat": "mew", "dog": { "name": "Floyd", "weight": 10, }, "rabbit": 42, "bird": 0 }
获取对象属性
[[ddObjectTools?
&sourceObject=`{
firstName: Chuck
lastName: Norris
}`
&getPropValue=`firstName`
]]
返回:Chuck
。
属性未找到时的自定义结果
[[ddObjectTools?
&sourceObject=`{
firstName: Viktor
lastName: Tsoi
dates: {
born: 1962.06.21
}
}`
&getPropValue=`{
name: dates.death
notFoundResult: forever alive
}`
]]
返回:永远活着
。
获取数组元素
[[ddObjectTools?
&sourceObject=`[
Pink Floyd
The Beatles
Queen
]`
&getPropValue=`2`
]]
返回:Queen
。
将 JSON 对象转换为数组
[[ddObjectTools?
&sourceObject=`{
firstName: Angus
lastName: Young
}`
&outputter=`jsonArray`
]]
返回
[ "Angus", "Young" ]
通过 \DDTools\Snippet::runSnippet
运行代码片段,无需数据库和 eval
//Include (MODX)EvolutionCMS.libraries.ddTools require_once( $modx->getConfig('base_path') . 'assets/libs/ddTools/modx.ddtools.class.php' ); //Run (MODX)EvolutionCMS.snippets.ddObjectTools \DDTools\Snippet::runSnippet([ 'name' => 'ddObjectTools', 'params' => [ 'sourceObject' => [ 'cat' => 'mew', 'dog' => [ 'name' => 'Floyd', 'weight' => 6, ], 'rabbit' => 42, ], 'extend' => [ 'objects' => [ [ 'dog' => [ 'weight' => 11, ], 'bird' => 0, ], ], ], ], ]);