複雑なコントロール パネルを構築する必要があります。
ユーザーが構成する必要があり、任意の数の変更を行った後、それらを送信すると、新しく構成されたレポートが表示されます。
多くの可能な構成オプションがあり、JS はコントロール要素を描画/値で初期化できなければならず、PHP はビジネス ロジックを実行する必要があります (すべて指定された構成オブジェクトに基づいています)。オブジェクトを反対側に渡す前のオプション。
明らかな解決策は、事前定義された構成オブジェクトを両側に持つことです。
PHP:
class config {
public $anArray = array();
}
JS:
{
anArray : []
}
また、両サイドは と を介しjson_encode
て流暢に通信でき$.parseJSON
ます。
ただし、両方のエンティティの構造が一致する必要があり、それを確認する方法がわかりません。これら 2 つのテクノロジ間で複雑なデータ構造を通信する方法について、何かアイデアはありますか?
編集:明確にするために、構造とは2つのオブジェクトのプロパティを意味します。オブジェクト自体は単純な構成ラッパーであるため、プライベートプロパティやメソッドなどはなく、スカラーまたは単純なインデックス付き配列であるパブリックフィールドのみです。
したがって、DRY 方法で開発するソリューションが必要です。たとえば、「paginationEnabled」というフィールドを追加する場合は、JS と PHP オブジェクトの両方に表示する必要があります。
PHP:
class config {
public $anArray = array();
public $paginationEnabled = true;
}
JS:
{
anArray : [],
paginationEnabled : true
}
私はそれらを両側に別々に実装することができましたが、それは DRY ではなく (このシナリオではひどいことです)、そのための解決策がなければならないと感じています。