2

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

如果这是可能的,我将非常乐意倾听和学习!

4

1 回答 1

3

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

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

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

于 2013-06-14T20:12:13.130 回答