Zend Framework 2服务管理器

时间:2013-06-14 19:46:24

标签: php zend-framework zend-framework2 servicemanager

有没有人知道如何在两个操作之间传递自定义Service Manager的实例?正如Zend Framework 2文档所述,如果SM类中的'shared'选项不会设置为Module.phpfalse将保留它的实例。但是,通过$manager = $this->getServiceLocator()->get('MyServiceManager');在不同的操作中获取服务管理器将返回MyServiceManager类的不同实例。我想要实现的是:我使用API​​调用第三方服务,显然返回带有各种信息数据的响应,但是,如果用户前往另一个操作/页面,其中先前从API请求返回的相同数据是将它保存为MyServiceManager属性并在需要时从类实例中进行访问(如果已设置,而不是每次都发送另一个API请求)。

如果可以的话,我会非常乐意倾听和学习!

1 个答案:

答案 0 :(得分:3)

请求生命周期(使用mod_php,fastcgi / fpm)通常会阻止共享资源。与在应用程序服务器上运行的语言不同,PHP没有内置的共享对象实例的方式。

对于每个传入请求,Web服务器都会创建一个php运行时的“新”实例,执行请求并自行清理。

您可以使用APC序列化对象实例或内存缓存以在请求之间临时存储结果。