在做了一些R& D之后,我发现Zend \ I18n将是我在申请中用于翻译目的的最佳选择。但我遇到了一个重大问题,似乎每当我需要翻译时,我都必须实例化一个新的翻译实例。一种快速的脏方法是使用全局对象,我不打算使用它。我正在使用Zend组件,例如Zend Loader + Zend I18N。
问题是如何在给定zend框架的情况下管理全局对象。我不想更改依赖注入的类构造函数。请给我一些建议。
修改
有人建议使用Zend_Registry,但在Zf2中不推荐使用。但是,Zf2中密切相关的是ServiceManager。但我没有得到一个很好的例子,说明如何在应用程序级别初始化ServiceManager并使用它来获取全局翻译服务(如果我是对的)。
答案 0 :(得分:0)
如果您想在全球范围内使用翻译等类,则应使用Zend_Registry
。
您所要做的就是设置注册表值:
Zend_Registry::set('translator', $translator)
然后你可以从任何地方获取你的实例:
$translator = Zend_Registry::get('translator');
当然'翻译'实例只是一个例子。您可以在手册here
中获取更多详细信息