[英]Passing an Object between PHP pages, IDE and passing object to other classes problems
我继承了一些需要进行重大更改的PHP代码。 我知道使用PHP可以序列化一个Object,并在页面之间将序列化的文本作为FormData传递。 在我继承的代码中,他们就是这样做的,但这会带来一些可维护性问题。 我想知道采用这种方法是否是个好主意。
例如 ...
当用户打开PageA.php时,将创建以下内容:
$expensiveObj = new ExpensiveClass($id);
然后,将$expensiveObj
序列化并将结果文本存储在div中,并具有以下内容:
<div id="expensiveObj"><?php echo strtr(base64_encode(serialize($expensiveObj)), '+/=', '-_,');?></div>
当PageA.php负载,一个Ajax调用到PageB.php制成。 div的内容作为post变量传递给PageB.php 。 在PageB.php中 ,以下代码反序列化对象:
$expensiveObj = unserialize(base64_decode(strtr($_POST['expensiveObj'], '-_,', '+/=')));
现在,PHP可以访问$expensiveObj
的字段和方法。 我遇到的问题是
因为$expensiveObj
ExpensiveClass
在PageB.php中未标识为ExpensiveClass
类的实例,所以IDE不知道ExpensiveClass
的字段和功能可用。 我无法执行自动完成功能,也无法在IDE中查找可用的功能。 另外,IDE无法捕获潜在的问题。 另一个开发人员专门在VI中工作,因此他从不关心。
PageB.php需要重构。 此页面中发生了视图,业务和控制器逻辑,我希望创建几个类,但是遇到一个我不知道如何将$expensiveObj
传递给类的问题。
我的问题是,有没有一种方法可以将Object传递给类? 有没有一种方法可以通知IDE传入的post变量确实是ExpensiveClass
的实例?
最后,以这种方式绕过对象甚至是一个好主意,还是我应该考虑进行更大的重构?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.