WebDev新手:我应该如何处理将复杂对象从PHP传递到PHP(非连续)


WebDev Novice: How should I approach passing a complex object from PHP to PHP (non-contiguous)

所以,我最初是一名原生应用程序开发人员(主要是C++),但我发现自己正在为朋友做一个小型企业编码项目。我习惯了自包含的本机应用程序,并且正在为我的项目当前问题而苦苦挣扎:

我在PHP中有一个AppInstance类,它是作为单例实现的(我听说大多数时候这不是最好的做事方式,我承认这一点)。此类包含应用程序的一些基本操作参数(主要是简单的字符串和数字),以及复杂对象的数组(由其他对象、数组和其他成员和方法组成的对象)。我希望能够在这个原始PHP脚本之间传递任何/所有这些应用程序数据(该脚本初始化我的程序需要运行的所有值,并输出我的UI的默认HTML)。

然后,我开始使用Javascript处理用户输入操作。其中一些输入需要来自原始 PHP 脚本的信息。由于这些输入的处理需要更多的计算,因此我想使用 AJAX 在服务器上调用此处理(在 PHP 中)并返回输出。但是,由于此处理需要原始PHP脚本中的一些对象,因此我正在尝试弄清楚如何以最有效的方式传递这些对象?

我已经读到我可以使用 JSON 编码有效地序列化我的对象并将它们发送到 JS(在本例中为 UI),并且这些对象可以返回到 PHP(请参阅此处)。但我的问题确实是多部分的:

  1. 服务器上执行所有计算和处理(在 PHP 中,而不是在 JS 中的客户端执行所有计算和处理)会更有效吗?
  2. 如果 #1 的答案是"是",我的第一个倾向是将 PHP 对象序列化为服务器上的文件,并让新的 PHP 脚本读取和反序列化该对象。有没有比这更有效的方法,如果没有,我应该以 JSON 或 PHP 的 serialize() 格式序列化吗?

编辑:我可能应该提到我的一些对象也拥有资源变量,因为我知道这对序列化有一些影响。

在效率方面,我会研究减少网络(AJAX)调用数量的任何因素,因为这通常是您最大的开销。在您的情况下,这很难评论,因为我不知道客户多久会打一次这样的电话。对我来说,更大的担忧是安全性,因为Javascript将能够操纵它从AppInstance获得的值。我个人会考虑一个只公开你允许的操作的API。