我正在做一个大型项目,其中数据库有许多表,出于不同的原因在不同的模块中访问这些表。所以想出了使用Service Manager
to 指向工厂类的想法,该类将实例化TableGateway
模型并根据请求返回它们,从而有效地延迟加载TableGateway
模型。
但是我仍然不确定ServiceManager中的工厂是延迟加载还是使用ServiceManager实例化?
即,如果我的配置文件中有类似的内容
array(
'service_manager' => array(
'factories => array(
'giftcard_table' => 'Giftcard\Factory\GiftcardTableFactory',
),
),
);
Giftcard\Factory\GiftcardTableFactory
每次我打电话都会创建一个新的实例$sm->get('giftcard_table')
吗?ServiceManager
或者无论我是否调用,这是否与每个 HTTP 请求开始时一起实例化$sm->get('giftcard_table')
?