2012-12-21 131 views
-1

比詢問具有明確正確/錯誤答案的問題更多的是徵求您的意見。在php中共享對象

我對OOPHP相當陌生我在過去做過一些OO編程。讓我頭昏腦脹的是在頁面之間共享對象(或更多狀態)的最佳方式。

我試圖避免將大量數據填入$ _SESSION,並且我不喜歡在每個頁面更改的表單中發佈所有數據的想法。

任何見解,將不勝感激。

感謝TT

+2

如果應該共享某些東西,那麼使用會話有什麼問題?另一種方法是重新加載每個頁面加載的數據,但這並不總是可行的/最好的。 – webnoob

+0

這個問題與OOP無關。無論採用的編程範例如何,頁面加載之間的持久數據都是相同的。 – deceze

回答

4

保存「大量的數據」在$_SESSION沒有什麼不妥。通過這樣做,您完全不會增加傳輸大小或任何內容,因此您不會影響客戶端,因爲$_SESSION純粹是服務器端。

我試圖避免大量的數據涌入$ _SESSION,並且我不喜歡在每個頁面更改的表單中發佈所有數據的想法。

如上所述,這是一個不是問題的問題,你不「的形式每個頁面的變化發佈的所有數據」,它是存儲在服務器端的平面文件,當你重新打開被簡單地自動反序列化該會議,並投入$_SESSION

假設$_SESSION的一生對你來說已經足夠了,你應該使用它。

如果您需要比$_SESSION更持久的東西,例如您需要在用戶登錄的整個過程中針對用戶存儲對象,則可以考慮序列化數據庫中的對象並將其拉出頁面加載,或者簡單地從您存儲的對用戶的值中重新創建一個對象。

+0

由於魯迪, 我只是證實了我認爲是真實的(這些是我唯一的選擇) 此外,我關切的是,在$ _SESSION舉行成千上萬的用戶,導致物體的潛在成千上萬可以有對服務器性能產生不利影響。 –

+0

@TraceyTun沒問題,如果你正在尋找能夠以真正高性能的方式工作的東西,你可以查看內存緩存,如APC或Memcached :) –

+0

感謝您的幫助。我是這個網站的noob,並且因爲問這個問題而被抨擊-4(不知道爲什麼)。但是你已經證實我目前的方法是正確的,並且通過繼續使用它們,而不是使用二次解決方案浪費我的生命。非常感謝。 –

0

正如你所知道只存在兩個頁面上的http請求或cliks之間的對象,所以你可以保存數據,你需要無論是在$ _SESSION/$ _ COOKIE,在發送$ _ POST/$ _ GET,序列化的對象,並將其保存在數據庫,文本文件或任何... AFAIK這些是你唯一的選擇與PHP

+0

好的,我只是在檢查以確保是這種情況。 –