2010-06-13 92 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