我有一个扩展MyServiceInterface
的服务MyService
。在Services.yaml
中,我配置:
My\Extension\Domain\Interface\MyServiceInterface:
alias: My\Extension\Service\MyService
public: true
当我想使用该服务时,我使用GeneralUtility::makeInstance(MyServiceInterface::class)
。MyServiceInterface
没有扩展SingletonInterface
,所以它不应该是单例的,对吗?
因为当我用GeneralUtility::makeInstance()
获取服务时,它具有我上次在同一调用中使用它时的值,并且没有像我期望的那样创建新对象。
如果我跳过接口步骤,则不会发生此问题,因此当我从Services.yaml
中删除配置并使用GeneralUtility::makeInstance(MyService::class)
获取时。
这是一个问题,还是我错过了什么?
1条答案
按热度按时间webghufk1#
您可以在
Services.yaml
文件中设置shared: false
。但是你不能在接口上使用别名定义,而是在真实的的类本身上。这样,服务就不再共享了。