WebDev初学者:我应该如何处理将一个复杂对象从PHP传递到PHP(非连续)的问题?

7 浏览
0 Comments

WebDev初学者:我应该如何处理将一个复杂对象从PHP传递到PHP(非连续)的问题?

我原本是一名本地应用程序开发者(主要使用C++),但我发现自己正在为朋友的小型业务编码项目工作。我习惯于自包含的本地应用程序,但我在项目中遇到了一个问题:

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

然后,我使用JavaScript来处理用户输入操作。其中一些输入需要来自最初的PHP脚本的信息。由于这些输入的处理需要一些更多的计算,我希望使用AJAX在服务器端(在PHP中)调用这个处理并返回输出。然而,由于这个处理需要最初的PHP脚本中的一些对象,我正在努力找出如何以最高效的方式传递这些对象?

我读到可以使用JSON编码有效地序列化我的对象并将它们发送给JS(在这种情况下是UI),并且这些对象可以返回到PHP(参见此处)。但我的问题实际上有几个方面:

  1. 在服务器端(即PHP)执行所有计算和处理是否更高效?
  2. 如果问题1的答案是“是”,我最初的想法是将PHP对象序列化到服务器上的一个文件中,并让新的PHP脚本读取和反序列化该对象。是否有比这更高效的方法?如果没有,我应该以JSON格式还是以PHP的serialize()格式进行序列化?

编辑:我应该提到一下,我的一些对象还拥有资源变量,我知道这对序列化有一定影响。

0
0 Comments

问题的原因是作者想要通过AJAX调用将复杂对象从一个PHP脚本传递到另一个PHP脚本,但对于如何处理这个问题感到困惑。作者的目标是通过减少AJAX调用的次数来提高效率,并希望确保对象在传递过程中不被修改。作者还担心JavaScript可能会操纵从AppInstance获取的值,因此对安全性也有所担忧。

解决方法是建议作者使用API来限制所允许的操作,并对从客户端传递的数据进行验证。建议作者在前端定义好要传递给客户端的数据,并在服务器端进行验证。并且提到JavaScript可以随意更改数据,因此建议作者使用良好封装的PHP对象,并通过接口来访问属性。

然而,作者对此表示疑惑,并认为如果PHP对象进行了良好的封装,JavaScript将无法更改对象属性。但是,对方指出JavaScript可以对数据进行任意更改。

因此,作者需要意识到JavaScript具有更改数据的能力,并且在传递对象时要小心处理数据的安全性。他们可以使用服务器端验证和接口来确保数据的完整性和安全性。

最后,作者被建议在聊天中继续讨论此问题。

0