3

我正在 Extbase 中构建一个扩展(最新版本,最新的typo3),并且我的模型中注入了存储库。

这根本行不通。没有错误,没有线索,什么都没有。inject* 方法根本不会被调用。完全相同的 Injection 在控制器中工作。

是否可以将存储库注入 Extbase 中的模型?一般来说,从 1.4 开始可以注入模型。

我该如何调试呢?我必须在哪里看?

4

2 回答 2

3

这是一个普遍的误解:

默认情况下,并非您在 TYPO3 CMS 中使用的每个类都使用依赖注入 - 这是一件好事。

事实是,ObjectManager 实例化的每个对象都可以从中受益。

简而言之:如果你new Thing()反对,它不会从依赖注入中受益。如果你使用ObjectManager来获取某个东西的实例,整个依赖注入会在你的新实例上下雨:

请注意,注入的对象也由 objectManager 实例化,因此如果注入ServiceA需要注入的ServiceB.

如果您实现标记接口,单例也是可能的SingletonInterface

于 2015-04-28T10:46:51.147 回答
2

依赖注入仅在您通过ObjectManager. 如果您使用的是好的 ol'

t3lib_div::makeInstance('Tx_yourextension_domain_model_thing')

注入* 方法没有被调用。

有一个德语博客条目解释了它是如何工作的。

于 2012-03-21T16:00:59.263 回答