我需要能够在 MySQL 数据库中存储、修改和检索 YAML 数据内容。
我的项目(和问题)旨在:
- 将 .yml 文件解析为 PHP 多维数组
- 将这些存储到 MySQL 数据库中
- 允许修改数据库主要目标中的单个值
- 从数据库中检索值,解析并放回 .yml 文件
第 1 步 - 示例 YAML 文件
string 'name:
singular: null
plural: null
fields:
price:
label: Preis
company_id:
label: null
placeholder: null'
这里要注意的重要事项是嵌套键的数量可能不限,键和值也可能具有相同的名称/数据。
第 2 步 - 将其放入 PHP 数组
我正在使用一个名为 Spyc 的库来解析 YAML。这很好用!它给了我以下信息:
array
'name' =>
array
'singular' => null
'plural' => null
'fields' =>
array
'price' =>
array
'label' => string 'Preis' (length=5)
'company_id' =>
array
'label' => null
'placeholder' => null
我接下来的目标是将这些中的每一个存储在 MySQL 数据库中。所以...
第 3 步 - 将它们保存为 CSV
这里我写了自己的函数,基本上就是一个长长的foreach()
s列表,把这些细节分隔成下面的数组:
array
0 => string 'name||singular||' (length=16)
1 => string 'name||plural||' (length=14)
2 => string 'fields||price||label||Preis' (length=27)
3 => string 'fields||company_id||label||' (length=27)
4 => string 'fields||company_id||placeholder||' (length=33)
第 4 步 - MySQL 数据库
从逻辑上讲,我试图将这些字符串存储在数据库中。我不确定架构。我猜 value 将end($array[$key]
在value列中,而key列将包含数组中的其余元素。
这将有效地允许我在将它们拉出、解析并返回到 .yml 文件之前更改数据库中的值。
第 5 步 - 我迷路了!
所以我不确定现在该怎么做。目前我正在尝试使用以下逻辑解析这些字符串:
- 最后一个值
end($array[$key]
是值,数组中所有前面的元素都是父键 - 一旦我让该代码工作,有效地将这些字符串转换回数组将是下一个优先事项
必须有更好的方法来做到这一点。我的主要目标是能够更新数据库中的各个值。我的主要问题是数组维度计数不是恒定的。
如何帮助我
请给我:
- 实现我的项目目标的更合适的方法(见顶部)如果有的话
- 将此数据存储在数据库中的最佳方法是允许轻松修改值(例如
null
您在步骤 1 中看到的 s) - 从数据库返回这些数据后,一个 PHP 函数将这些键和值返回到原始数组的确切结构(步骤 2),以便我可以使用 Spyc 将其转换回 YAML 并输出到 .yml 文件。