symfony - Typo3 - 如何在 symfony commandController 中获取 extbase 上下文
问题描述
由于 TYPO3 v9.4 不推荐使用 extbase commandController,因此我根据以下内容使用 symfony 控制台命令替换:https ://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/CommandControllers/Index .html#cli 模式
现在我的 FooCommandController 从 Symfony\Component\Console\Command\Command 扩展
因为我需要使用 TYPO3 数据,所以我需要通过 extbase 存储库获取它们。但是我的整个 CommandController 没有 extbase 上下文,因此无法通过 extbase 依赖注入加载 repo。
也无法通过 makeInstance 或 objectManager->get() 手动创建它们,因为在此上下文中没有可用的 objectManager。
访问 symfony commandController 中的 extbase 功能的正确/非hacky方法是什么?
解决方案
ObjectManager
“最简单”但不推荐的方法是通过它获取makeInstance()
并使用get()
它。
更好的方法是将您的逻辑分离到自定义类中,该类使用 Extbase 的依赖注入。然后,您可以以相同的方式获取此类。
使用 V10,您可以只进行注入,因为 DI 在 Extbase 之外可用。
推荐阅读
- android - 注册和注销广播接收器?
- apache-camel - 动态更改属性占位符的值
- ontology - owl api state ObjectProperty 个人之间的关系来自进口
- html - 从 html 表单向 jsp 提交“null”
- node.js - |节点.JS| 每当我得到 params.id 时,我就会得到 jumbotron.css
- java - 在 Eclipse 中对 Java 9 模块化项目进行 JUnit 测试
- ldap - CAS 5.2.4 cas.properties 位置
- c# - 为什么 C# 在 XDocument 中留下未闭合的标签?
- pycharm - graphlab.SFrame.show() 错误:请求的端口不可用:无
- python - PyQt5 启动具有实时输出的外部进程