2010-06-13 96 views
3

我想知道如果任何人都可以在Web應用程序中使用全局狀態提供有關「最佳實踐」一些建議全局狀態 - ,特別是PHP雖然即時尋找通用最佳實踐,即設計模式等最好的處理方法

目前我只使用一個靜態類,稱它爲Configs。我想這與使用註冊表模式很相似,但在應用程序中處理全局數據的方式當然更好 - 我只是想不到更好的方法。

+1

*「記住,任何全球性的數據始終是難脫干係。「* - Martin Fowler – Gordon 2011-06-29 14:21:42

回答

1

如果您只關心管理每個請求內部的全局範圍,那麼只需一個簡單的註冊表模式即可。

如果你想要一些庫代碼依賴Zend_Registry,那麼Zend_Registry可以正常工作,並且可以在沒有其他Zend Framework的情況下使用Zend_Registry。

或者如果您願意,您可以推出自己的班級,就像您現在所說的那樣。在優先順序在PHP處理全局數據

+0

那麼,註冊表模式被認爲是處理全局數據的最佳實踐呢? – David 2010-06-13 21:39:01

+0

只要你不能使全球數據非全球化,註冊局可以說是一個最佳實踐。 – timdev 2010-06-13 21:59:52

2

選項:

  • 依賴注入
  • 全球註冊
  • 辛格爾頓(使用一個純粹是爲了使一些全球性的濫用)
  • 靜態類(代碼異味)
  • 全局變量(聲音klaxon)

可能還有更多,但這是我能想到的。每個人都有自己的優點和缺點,開發人員必須對何時使用哪一個做出判斷。依賴注入通常是最好的選擇,但並非總是如此。有時甚至是全局變量都很合適。

我剛剛寫了一篇博客有關各的優點和缺點的詳細情況,當你可以選擇使用這些例子沿:Example here