创建可在ZF2中通过整个应用程序访问的变量/对象/资源

时间:2014-02-28 11:16:48

标签: frameworks zend-framework2

具体来说,我需要创建一个用于缓存数据的数组变量,但我不想使用ZF2缓存适配器。

我试图创建一个可调用的类,用于实例化我的类的对象,该类包含用于设置和从数组中获取值的方法,该数组也被定义为该类的属性。据我所知,服务管理器将所有服务视为默认共享,当我第一次通过服务管理器方法获取服务时,应该只创建一个类。但这不起作用,如果我在Controller类中的不同操作中获得该服务,这是我需要做的。那么,我该如何实现这种效果呢?创建一个可在应用程序范围内使用的对象?

1 个答案:

答案 0 :(得分:0)

管理购物车时遇到了这种问题。

我的购物车是由CartManager建模的,这是一个用户(会话)的唯一实例,直到paiement(购物车保存在数据库中)。

我将CartManager注册为服务来构建第一个实例,这个实例是在MvcEvent::EVENT_ROUTE附加的事件处理程序中构建的,一旦构建,我用我的实例覆盖CartManager服务,无论我在哪里调用服务,我的第一个实例是服务。

然后我将我的实例持有(会话或数据库)在MvcEvent::EVENT_FINISH上附加的其他事件处理程序中。

所有事件处理程序都附加在Module :: onBoostrap()