由于 TYPO3 v9.4 不推荐使用 extbase commandController,因此我根据以下内容使用 symfony 控制台命令替换:https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/CommandControllers/Index.html#cli-mode
现在我的 FooCommandController 从 Symfony\Component\Console\Command\Command 扩展
因为我需要使用 TYPO3 数据,所以我需要通过 extbase 存储库获取它们。
但是我的整个 CommandController 没有 extbase 上下文,因此无法通过 extbase 依赖注入(inject)加载 repo。
也无法通过 makeInstance 或 objectManager->get() 手动创建它们,因为在此上下文中没有可用的 objectManager。
访问 symfony commandController 中的 extbase 功能的正确/非hacky方法是什么?
最佳答案
“最简单”但不推荐的方法是获取 ObjectManager
通过 makeInstance()
并使用 get()
在上面。
更好的方法是将您的逻辑分离到自定义类中,该类使用 Extbase 的依赖注入(inject)。然后,您可以以相同的方式获取此类。
使用 V10,您可以只进行注入(inject),因为 DI 在 Extbase 之外可用。
关于symfony - Typo3 - 如何在 symfony commandController 中获取 extbase 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59820376/