我需要构建一个复杂的控制面板。
它必须由用户配置,并且在他进行了任意数量的更改后,他提交它们并显示新配置的报告。
现在有很多可能的配置选项,JS 必须能够绘制控制元素/用值初始化它们,PHP 必须执行业务逻辑——所有这些都基于给定的配置对象——并且两者都必须能够更改将对象传递到另一侧之前的选项。
现在显而易见的解决方案是在两边都有预定义的配置对象:
PHP:
class config {
public $anArray = array();
}
JS:
{
anArray : []
}
双方可以通过json_encode
和进行流利的交流$.parseJSON
。
但是,两个实体的结构必须匹配,我不知道如何确保这一点。有没有人对如何在这两种技术之间交流复杂的数据结构有任何想法?
编辑:澄清一下,结构是指两个对象的属性:对象本身是一个简单的配置包装器,因此它没有私有属性、方法等,只有标量或简单索引数组的公共字段。
所以我想要一个以 DRY 方式开发它的解决方案:如果我想添加一个名为“paginationEnabled”的字段,它应该同时出现在 JS 和 PHP 对象中:
PHP:
class config {
public $anArray = array();
public $paginationEnabled = true;
}
JS:
{
anArray : [],
paginationEnabled : true
}
我可以在两边分别实现它们,但它不会是 DRY(在这种情况下很糟糕),我可以感觉到必须有一个解决方案,我只是想不出一个。