模型中的ZF2视图辅助对象


ZF2 view helper in model

我正在本地化在ZF2上编写的项目。在某些地方,人们在模型层中使用静态变量。

    public function getTransitions()
    {
        $transitions = array(
            static::STATE_NEEDS_REVIEW         => 'Needs Review',
            static::STATE_NEEDS_REVISION       => 'Needs Revision',
            static::STATE_ARCHIVED             => 'Archive'
        );
//      some code...
        return $transitions;
    }

我有用于翻译的自定义视图帮助程序,它基本上是ZF2翻译器的包装器,具有一些附加功能。我知道如何在视图层和像这样的控制器中使用它:

$t = $this->getServiceLocator()->get('ViewHelperManager')->get('t');

但是如何在模型层中使用我的视图辅助对象???

如果您需要访问模型中的服务定位器,您可以实现ServiceLocatorAwareInterface,如问答中所述:

通过ServiceLocatorAwareInterface注入ServiceLocator不起作用

但是,我建议在模型中使用视图辅助对象可能不是正确的方法。也许您可以从ViewHelper中获取相关的逻辑,并将其移动到一个服务中,您可以通过注入或在需要时创建它来使该服务对模型类可用。然后,视图帮助程序可以使用相同的服务。