[英]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.