有人知道如何在两个操作之间传递自定义Service Manager的实例吗?正如Zend Framework2文档所说,如果Module.php类中的‘SM’选项没有设置为false,那么共享将保留它的实例。但是,在不同的操作中通过$manager = $this->getServiceLocator()->get('MyServiceManager');获取服务管理器将返回MyServiceManager类的不同实例。我想要实现的是:我使用对第三方服务的API调用,这显然会返回带有各种信息数据的响应,但是,如果用户转到另一个操作/页面,其中需要先前从API请求返回的相同数据,则将其保存为MyServiceManager属性,并在需要时从类实例访问它(如果设置了该属性),而不是每次都发送另一个API请求。
如果这是可能的,我将非常乐意倾听和学习!
发布于 2013-06-15 04:12:13
请求生命周期(使用mod_php、fastcgi/fpm)通常会阻止共享资源。与在应用服务器上运行的语言不同,PHP没有内置的共享对象实例的方式。
对于每个传入的请求,web服务器都会创建一个php运行时的“新”实例,执行请求并自行清理。
您可以使用APC来序列化对象实例,或者使用memcache来临时存储请求之间的结果。
https://stackoverflow.com/questions/17116176
复制相似问题