2010-03-23 149 views
1

將域模型的對象存儲在PHP會話中是否是一種很好的做法?在PHP會話中存儲域模型

這樣可以避免查詢和重建每個PHP對象到每個PHP請求。

是否有尺寸限制?

+1

那麼兩個客戶端修改同一個對象呢?我的意思是,我認爲這對閱讀很好,但是在寫作時,你必須考慮併發性 – 2010-03-23 15:01:21

+0

看到這個關於大小的問題:http://stackoverflow.com/questions/217420/ideal-php-session-size – 2010-03-23 15:04:28

+0

@Jhonny:嗯,你提出一個很好的觀點......我應該找到另一個解決方案 – 2010-03-23 15:34:48

回答

2

如果您在PHP中使用OOP,您可能希望在每次請求時重建這些對象,原因有很多。總之,就像你所說的那樣,存儲,加載和反序列化會話中的對象,或者只是重建它們之間,性能上的差別不會太大。

當然,這也取決於你使用的類的種類。構建一個類通常在性能方面不是很成問題,除非有這麼多的東西需要做(數據庫查詢等)

此外,這樣做可能會使您的代碼不易理解和/或可維護太。

是的,是有大小的限制由PHP設置的最大內存使用量在php.ini

定義所以這個問題是不是真的聽命除非你確切地知道你想要什麼類的存儲會話是什麼,他們做什麼以及他們如何交互。

例如,如果您有一個在您的網站上抽象登錄用戶的類,將其存儲在PHP會話中可能是一個好主意。但在大多數情況下,它不會。

+0

在我的情況下,這將是存儲整個模型。例如,用戶連接,他可以訪問他的「項目」,這意味着將他當前的工作項目存儲在會話中。注意:「項目」是一組約100個PHP對象(這就是爲什麼我不想每次都重新加載它,這是大約50個查詢) – 2010-03-23 15:24:01