处理全球状态的最佳方式

时间:2010-06-13 21:16:59

标签: php design-patterns

我想知道是否有人可以就在Web应用程序中使用全局状态的'最佳实践'提供一些建议 - 特别是PHP,尽管我正在寻找通用的最佳实践,即设计模式等。

目前我只使用静态类,称之为Configs。我想这与使用注册表模式类似,但肯定有一种更优雅的方式来处理应用程序中的全局数据 - 我只是想不出更好的方法。

2 个答案:

答案 0 :(得分:2)

按优先顺序在PHP中处理全局数据的选项:

  • 依赖注入
  • 全球注册局
  • Singleton(纯粹使用一个全球性的东西是滥用)
  • 静态类(代码味)
  • 全局变量(声音klaxon)

可能会有更多,但这是我能想到的。每个都有自己的优点和缺点,开发人员必须判断何时使用哪个。依赖注入通常是最好的选择,但并非总是如此。有时(非常小)甚至全局变量都可能是合适的。

我刚刚撰写了一篇博客文章,其中详细介绍了各自的优缺点,以及何时可以选择使用它们的示例:Example here

答案 1 :(得分:1)

如果您只关心管理每个请求中的全局范围,那么一个简单的注册表模式就足够了。

Zend_Registry可以正常工作,如果你想要一些库代码可以依赖,并且可以在没有其余Zend Framework的情况下使用。

或者,如果您愿意,可以自己上课,正如您所说的那样。