YAML データコンテンツを MySQL データベースに保存、変更、取得する機能が必要です。
私のプロジェクト(および質問)の目的:
- .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 データベース
論理的には、これらの文字列をデータベースに保存しようとしています。スキーマがわかりません。end($array[$key]
値は値列にあり、キー列には配列の残りの要素が含まれると思います。
これにより、データベース内の値を変更してから、値を取り出して解析し、.yml ファイルに戻すことができます。
ステップ 5 - 道に迷った!
だから私は今何をすべきかわからない。現在、これらの文字列を次のロジックで解析しようとしています。
- 最後の値
end($array[$key]
が値で、配列内の前のすべての要素が親キーです - そのコードが機能するようになったら、これらの文字列を効果的に配列に戻すことが次の優先事項になります
これを行うためのより良い方法が必要です。私の主な目的は、データベース内の個々の値を更新できるようにすることです。私の主な問題は、配列の次元数が一定ではないという事実です。
どうすれば助けられるか
私に申し出てください:
- 私のプロジェクトの目的を達成するためのより適切な方法がある場合 (トップを参照)
- このデータをデータベースに保存して、値を簡単に変更できるようにする最善の方法 (たとえば、
null
手順 1 で表示される s) - データベースからこのデータを返すと、これらのキーと値を元の配列の正確な構造に戻す PHP 関数(ステップ 2) を使用して、Spyc を使用してこれを YAML に変換し、.yml ファイルに出力できるようにします。