使用Zend使用全局对象的更好方法

时间:2014-03-11 08:37:44

标签: php zend-framework2

在做了一些R& D之后,我发现Zend \ I18n将是我在申请中用于翻译目的的最佳选择。但我遇到了一个重大问题,似乎每当我需要翻译时,我都必须实例化一个新的翻译实例。一种快速的脏方法是使用全局对象,我不打算使用它。我正在使用Zend组件,例如Zend Loader + Zend I18N。

问题是如何在给定zend框架的情况下管理全局对象。我不想更改依赖注入的类构造函数。请给我一些建议。

修改

有人建议使用Zend_Registry,但在Zf2中不推荐使用。但是,Zf2中密切相关的是ServiceManager。但我没有得到一个很好的例子,说明如何在应用程序级别初始化ServiceManager并使用它来获取全局翻译服务(如果我是对的)。

1 个答案:

答案 0 :(得分:0)

如果您想在全球范围内使用翻译等类,则应使用Zend_Registry

您所要做的就是设置注册表值:

Zend_Registry::set('translator', $translator)

然后你可以从任何地方获取你的实例:

$translator = Zend_Registry::get('translator');

当然'翻译'实例只是一个例子。您可以在手册here

中获取更多详细信息