我有一个模型类,它不扩展任何核心 Zend 模块。该模型是从我之前的 Zend Framework 1 应用程序导入的。我可以通过将其转换为命名空间来调用它的方法。我遇到的问题是在定义的方法中读取全局配置。
对于控制器,我可以使用以下代码访问全局配置
$config = $this->getServiceLocator()->get('config');
// This gives a union of global configuration along with module configuration .
但是我们应该如何访问模型类中的配置。
下面是我的模型类的情况
<?php
namespace test\Http;
class Request
{
protected $client;
public function abc( $c)
{
return $something;
}
......
}
我是 Zend Framework 2 的新手,请建议任何方法来实现这一点。
在上面的描述中,模型是指(MVC 模型类),其中包含一些业务逻辑。
假设您构建服务(您的代码看起来像服务),您可能会在服务工厂中实例化它(在本例中,我将其放入模块配置中):
class MyModule
{
public function getServiceConfig()
{
return array(
'factories' => array(
'my_request_object' => function (
\Zend\ServiceManager\ServiceLocatorInterface $sl
) {
$config = $sl->get('config');
return new \GaGooGl\Http\Request($config);
},
),
);
}
}
这样,您就可以将配置对象直接注入其使用者中(无需引用使用者中的服务定位器)
另一种方法是实施Zend\ServiceManager\ServiceLocatorAwareInterface
在你的GaGooGl\Http\Request
. I 个人劝阻 http://ocramius.github.com/blog/zf2-and-symfony-service-proxies-with-doctrine-proxies/,但这基本上可以让你拥有你的Request
对象在内部保留对服务定位器的引用,因此可以检索config
运行时的服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)