2017-05-08 82 views
0

我在服務器體系結構中使用我的PHP(與普通服務器一樣),其中有一個傳入請求並構建傳出響應。所有的請求屬性(如客戶端ID)都會賦予每個子函數和類,從而使其具有魔力(就像我的Mappers和Models以及Helpers一樣)。PHP體系結構:在整個系統中保存並使用「常量」

有沒有想法使用請求數據,而不是從功能到功能的功能。

想法1:使我的請求/響應對象靜態。我只有一個請求和一個響應,所以這樣做沒有問題。

想法2:保存會話(或類似)中的數據。這聽起來也不舒服和沉重。

有沒有這樣做的另一個想法?

+1

*「我確實有一個請求和一個響應」* - 不是單元測試的大粉絲我接受...?明確地傳遞信息是做任何事情最可維護,最靈活的方式。它真的是這樣的負擔嗎? – deceze

回答

1

實現您自己的Request或RequestContext類,並使用正在進行的方法可能需要的所有數據填充此類型的對象。這樣,您不需要爲每個函數提供越來越多的參數,而只需轉發整個請求。

這更容易擴展,並且不會遭受「全局」數據的缺陷。這是一個典型的模式,也被很多框架使用。

+0

*「使我的請求/響應對象靜態」* - 我認爲這意味着OP已經有這樣的事情,但這有點不明確...... – deceze

+0

好吧,很難說沒有示例代碼。但無論如何,這是一種最佳實踐方法,所以我發佈了它。 – tweber

+0

它對解決特定示例代碼毫無疑問,但卻發現如何實現(或重構)這種情況的想法。 _AbstractRequest_和_AbstactResponse_是一個對象,只有一次(在我的情況下)。因此,在_static_上下文中使用它直接在我的頭上。 將整個對象放置在每個函數中,就像是最好的想法。 –